交响乐2.8.2
根据 Symfony 文档“选择选项是一个数组,其中数组键是项目的标签,数组值是项目的值”
http://symfony.com/doc/2.8/reference/forms/types/choice.html#choices
但通过下面的表格,我看到的恰恰相反:
$filterForm = $this->createFormBuilder()
->add('vendorName', ChoiceType::class, array(
'expanded' => true,
'multiple' => true,
'choices' => array('label' => 'value') // <-- HERE
))
->add('filter', SubmitType::class, array('label' => 'Filter'))
->getForm();
渲染成这样:
文档有误吗?还是我没理解正确?
在较新的 Symfony 版本中 die 选项choices_as_values
已弃用。
https://github.com/symfony/symfony/issues/14951
这是一个解释。我认为在你的情况下,你必须切换它或尽可能长时间地使用该选项。
Set choices_as_values
to true
。如果您升级,则必须更改它。
@Soullivaneuh Choices_as_values 不直接到 choice_label。所以你正在谈论一个不同的话题。
choice_as_values 控制选项中的选项是键或值的位置。 Symfony 2.0 附带了作为键的选择(以及作为值的标签),这意味着简单的语法仅在您的选择是整数或字符串时才有效。任何其他情况(例如布尔选择)都需要传递 ChoiceList 对象,这使得使用更加复杂(特别是对于忘记布尔值不能用作键的人,因为 PHP 只是将它们默默地转换为字符串)。
这就是为什么在 2.7 中引入了这个选项以便能够翻转数组(同时保持 BC)。优点是任何类型的数据都可以用这种方式使用(字符串、整数、浮点数、布尔值、对象、数组)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)