覆盖symfony 2 formbuilder中的多个select

时间:2013-05-15 09:18:27

标签: symfony symfony-forms

所以,我有一个formbuilder动作,部分原因是:

->add('apples_group', 'entity', 
    array(
        'class' => 'ThingMainBundle:ApplesGroup', 
        'multiple' => true,
        'expanded' => true,
        'property' => 'applesName'
    )
)

目前在此代码中输出为多选框:

{{ form_widget(form.apples_group, { "attr": {"class": "fields-list" } }) }}

有时 - 在不同的视图中 - 这不需要是多个,而应该是一个下拉框。有没有办法在窗口小部件中指定在渲染此窗口小部件时属性multiple应为false?

(在这种情况下,如果允许多次验证已经在后端验证)

2 个答案:

答案 0 :(得分:0)

最好创建

// YourFormType.php
public function __construct(Apple $apple)
{
    $this->apple = $apple;
}

->add('apples_group', 'entity', 
    array(
        'class' => 'ThingMainBundle:ApplesGroup', 
        'multiple' => $this->apple->isMultiple() ,  // you set it in admin, right?
        'expanded' => true,
        'property' => 'applesName'
    )
)

控制器:

$entity = new Apple() ;
$form = $this->createForm( new YourFormType($entity), $entity) ;

答案 1 :(得分:0)

所以看起来实际的答案是等到https://github.com/symfony/symfony/issues/6602降落。