如何添加"添加新"在Symfony2的选择列表中?

时间:2015-07-09 06:37:00

标签: forms symfony

我有两个实体:SongAuthorSong知道AuthorManyToOne的关系。

我生成了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。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您可以执行类似SonataAdminBundle demo admin page(登录/传递:admin / admin)的操作。添加指向作者弹出窗体的链接,在表单提交后,只需通过ajax更新作者选择字段。

另一种方法是创建AuthorPickerType自定义表单类型,您将检查是否提供了新的作者姓名,而不是从现有作者列表中选择,然后创建并返回新的作者实体。

答案 1 :(得分:0)

您可以按照此程序http://symfony.com/fr/doc/current/cookbook/form/form_collections.html

它解释了如何做你想要的,添加相关元素。