首页 文章

表格键=>自symfony 3以来反转的值,是否可以覆盖它?

提问于
浏览
0

从Symfony3开始,“选择”形式中的键 - >值被翻转 . 我尝试将一个非常大的项目升级到symfony3,我很难翻转所有关键值 .

是否可以覆盖symfony表单的默认行为以使用旧方法?

例如,如果我有很多像这样的代码

private static $MAP_MINUS = [
    self::GENTLEMAN => 'm.' ,
    self::MADAME => 'mme.',
];

我不得不颠倒它

private static $MAP_MINUS = [
    'm.' => self::GENTLEMAN ,
    'mme.' => self::MADAME,
];

但我不想,因为项目中有太多的数组 .

1 回答

  • 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;
       },
    ));
    

相关问题