我有两个实体:Song
和Author
。Song
知道Author
与ManyToOne
的关系。
我生成了Song
的表单,我在新页面和编辑页面中使用了该表单。这是它的样子:
// ...
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('name')
->add('content')
->add('author') // That creates a "choices" list, exactly what I want.
;
}
// ...
我希望这个choices
列表中有一个"添加新作者"将显示AuthorType
表单的条目,允许我添加新的Author
。我怎么能这样做?
答案 0 :(得分:0)
您可以执行类似SonataAdminBundle
demo admin page(登录/传递:admin / admin)的操作。添加指向作者弹出窗体的链接,在表单提交后,只需通过ajax更新作者选择字段。
另一种方法是创建AuthorPickerType
自定义表单类型,您将检查是否提供了新的作者姓名,而不是从现有作者列表中选择,然后创建并返回新的作者实体。
答案 1 :(得分:0)
您可以按照此程序http://symfony.com/fr/doc/current/cookbook/form/form_collections.html。
它解释了如何做你想要的,添加相关元素。