我有一个具有oneToMany关系的集合。现在,不是根据官方cookbook使用整个原型和javascript实现,我希望能够一次只将一个项目添加到集合中。理想情况下,使用e customType而不是CollectionType,但Symfony似乎不允许它。此外,我想避免在控制器中乱砍。
有人有好主意实现这个吗?
答案 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的一个基本示例,您只是创建一个新对象,预先设置一些值。