symfony集合 - 一次添加一个项目

时间:2016-07-13 14:38:41

标签: php symfony collections doctrine

我有一个具有oneToMany关系的集合。现在,不是根据官方cookbook使用整个原型和javascript实现,我希望能够一次只将一个项目添加到集合中。理想情况下,使用e customType而不是CollectionType,但Symfony似乎不允许它。此外,我想避免在控制器中乱砍。

有人有好主意实现这个吗?

1 个答案:

答案 0 :(得分:0)

如果我知道您希望一次添加一个项目并避免使用JavaScript,那么为什么不能使用具有处理相关对象的单个实例的表单的函数。

例如,当你执行add / create函数时,创建一个新对象,只需设置对象的相关值并将其传递给表单。

实施例; Foo类是一类,Bar类很多

$bar = new Bar();
$bar->setFoo(1);

$form = $this->createFormBuilder($bar)
            ->add('whatever', TextType::class)
            -->add('save', SubmitType::class, array('label' => 'Create Bar for Foo'))
            ->getForm();

成功成型后,重定向回您想要的地方;另一个添加表单或父类列表。 这实际上只是Symfony handles forms的一个基本示例,您只是创建一个新对象,预先设置一些值。