Symfony 2.7 выбор attr с полем EntityType
Мне нужно добавить дополнительный атрибут HTML к каждому выбору поля EntityType в Symfony 2.7.
Следуя этому руководству , я предполагаю, что EntityType наследует эту функцию от ChoiceType. Я попробовал что-то вроде следующего, но безрезультатно; атрибут mytype не добавляется к отображаемым параметрам выбора.
$builder->add('customer_email', 'email')
->add('Product', 'entity', array(
'class' => 'MyBundle:Product',
'property' => 'name',
'empty_value' => 'None',
'required' => false,
'choice_attr' => function ($val, $key, $index) {
return array('mytype' => $val->getType());
}))
1 answers
Это не обязательно лучший ответ, но я пока не могу оставлять комментарии.
При реализации choice_attr, choice_labels
и т. Д.... На ChoiceType и EntityType, похоже, что choice_attr
был оставлен на последнем, есть несколько комментариев по этому поводу на github, мне лично нужна та же функция, надеюсь, она будет реализована.
Https://github.com/symfony/symfony/issues/4067
P.S.: При дальнейшем исследовании он действительно унаследован от типа выбора, и он только появляется в документации 2.7, если вы напишете что-то вроде
'choice_attr' => function (Product $product, $key, $index) {
return ['class' => $product->getType() ];
}
Вы должны правильно установить атрибут класса, для пользовательских атрибутов, в которых я не уверен, вам может потребоваться использовать 'attr' => 'foo'
.
P.P.S.: Протестировано'foo' =>'bar'
, и это работает, нет необходимости встраиваться в "attr".