Ключ формы => значение инвертировано начиная с symfony 3, возможно ли его перезаписать? - PullRequest
0 голосов
/ 10 декабря 2018

Начиная с Symfony3, ключ -> значение в форме 'выборы' переворачивается.Я пытаюсь обновить очень большой проект до symfony3, и мне было бы очень трудно перевернуть все значения ключей.

Можно ли переписать поведение форм Symfony по умолчанию, чтобы использовать старый способ?

Например, если у меня много такого кода, как этот

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

Мне бы пришлось его инвертировать

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

Но я не хочу, потому что тамслишком много массивов в проекте.

1 Ответ

0 голосов
/ 10 декабря 2018

Вы можете вручную установить опцию '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;
   },
));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...