自Symfony3起,“ choices”形式的键->值被翻转。我试图将一个非常大的项目升级到symfony3,这对我来说很难翻转所有关键值。
是否可以覆盖symfony表单的默认行为以使用旧方法?
例如,如果我有很多这样的代码
private static $MAP_MINUS = [
self::GENTLEMAN => 'm.' ,
self::MADAME => 'mme.',
];
我必须将其反转
private static $MAP_MINUS = [
'm.' => self::GENTLEMAN ,
'mme.' => self::MADAME,
];
但是我不想,因为项目中的数组太多了。
答案 0 :(得分:1)
您可以手动将表单类的“ choices_as_values”选项设置为false。这仅在symfony4之前有效,因为该选项本身已被sf3弃用。
在弃用之前,他们将默认值切换为true
,这就是现在翻转数组的原因。
$form->add('status', 'choice', array(
'choices' => array(
'Enabled' => Status::ENABLED,
'Disabled' => Status::DISABLED,
'Ignored' => Status::IGNORED,
),
// choices_as_values defaults to true in Symfony 3.0
// and setting it to anything else is deprecated as of 3.0
'choices_as_values' => true,
// important if you rely on your option value attribute (e.g. for JavaScript)
// this will keep the same functionality as before
'choice_value' => function ($choice) {
return $choice;
},
));