Перед использованием Symfony 2.7 значение attr
для поля choice
применяется только к самому полю, то есть к элементу <select>
, который был визуализирован. Я использовал это, чтобы применить классы к этому элементу для его стилизации.Как я могу избежать применения attr ко всем опциям моего поля выбора?
В Symfony 2.7 это поведение было изменено. Теперь все <option>
детей элемента <select>
также имеют те же атрибуты (commit of the change) и поэтому классы.
Для некоторых разъяснений, пусть это будет код:
<?php echo $view['form']->widget($form['myField'], ['attr' => ['class' => "text ui-widget-content ui-corner-all"]]); ?>
Тогда это выход Symfony < = 2,6:
<select class="text ui-widget-content ui-corner-all" name="myField">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
И это выход Symfony> = 2,7:
<select class="text ui-widget-content ui-corner-all" name="myField">
<option value="1" class="text ui-widget-content ui-corner-all">Option 1</option>
<option value="2" class="text ui-widget-content ui-corner-all">Option 2</option>
</select>
Классы, которые я применяю, не подходят для элементов <option>
, поскольку они определяют границы и т.п. для фактического поля. Обратите внимание, что это классы, определенные jQuery UI, поэтому я не могу легко изменить их определение.
Что является самым простым способом избежать применения этих классов ко всем <option>
элементам поля choice
, все еще применяя его к элементу <select>
?
Возможно, это ошибка. Потому что я не мог найти что-либо в UPGRADE-2.7 для этого, и эта функциональность - это то, что должен делать параметр '' choice_attr''. – user2268997
@ user2268997 Да, я ничего не мог найти, но, глядя на код, который я связал, он кажется очень преднамеренным для меня. – Chris
Я мало что знаю о шаблонах php, но похоже, что «attr» разрешен из '$ choice', который является экземпляром' ChoiceView', который создается 'DefaultChoiceListFactory', и передается опция' choice_attr' на этот завод в определении 'ChoiceType'. (если вы не предоставляете собственный« ChoiceList ») – user2268997