0

我正在 symfony2 中做一个过滤器表单,我尝试预先选择一些字段。

我有两个选择:

$formBuilder->add('first', 'choice',
    array('choices' => $choiceFirst,
    'expanded' => false,
     'multiple' => true,
     'data' => explode(' ', $this->getRequest()->get('first'))
));
$formBuilder->add('second', 'choice',
    array('choices' => $choiceSecond,
    'expanded' => true,
    'multiple' => true,
    'data' => explode(' ', $this->getRequest()->get('second'))));

对于未扩展的第一选择,通过 url 传递的数据是预选的。但不是第二个扩展。

有什么方法可以从字段选择中预选复选框?

4

3 回答 3

1

您必须提供一组选定值作为多选字段的数据。

编辑:不相关的答案,我的错误

尝试提供一个键 => 布尔数组,因为检查状态取决于一个布尔值。

我认为你只需要在你的数组中放入检查值,所以那些是真的;)

于 2012-03-30T10:50:17.130 回答
1

我为这个问题找到的最佳解决方案是在生成表单之前简单地为您的对象设置默认值。

像 :$myEntity->setMyfieldchoice(1);

这样 symfony 会理解这个值是默认值(在选择字段上为我工作)。

希望这有帮助!

于 2012-03-30T11:33:52.540 回答
1

尝试:

$formBuilder->add('first', 'choice',
   array('choices' => array('0' => 'first option', '1' => 'second option'),
   'expanded' => false,
   'multiple' => true,
   'data' => explode(' ', $this->getRequest()->get('first'))
));

并查看:

{{ form_widget(form.first.0) }}
{{ form_widget(form.first.1) }}

对我来说工作。

于 2012-04-30T14:15:41.017 回答