2014-12-12 2 views
1

Мне интересно, как я могу динамически установить атрибут класса HTML для элементов флажка с помощью FormBuilder в Symfony2. Я использую элемент, генерируемый объект:Динамическое определение атрибута класса для списка выбора symfony2, сгенерированного из объекта в FormBuilder

add('myEntity', 'entity', array(
    'class' => 'MyBundle:myEntity', 
    'property'  => 'label', 
    'multiple'  => true, 
    'expanded'  => true, 
)) 

Это только устанавливает идентификатор флажков в соответствии с этим шаблоном: [FORM_NAME] _ [имя_класс] _ [ID] (например, acme_my_form_my_entity_5)

Я хочу знать, могу ли я также установить атрибут класса с этими значениями: [имя_файла] [имя_класса] [метка]. Ярлык - это другое поле в сущности.

Возможно ли это?

ответ

1

Да. Возможно, но вам нужно будет прочитать Документы!

Если вы ленивы и не хотят, чтобы их читать, то просто поиск Google с помощью «пользовательских флажков Symfony» и вы вернетесь к Stackoverflow, где есть много других примеров like this , Ответ на код будет просто копией других примеров, поэтому лучше создать свой собственный настраиваемый файл и вставить его в качестве собственного решения.

Если вы хотите простое решение, имейте в виду, что вы можете что-то вроде этого непосредственно в шаблоне Twig:

{{ form_widget(form.myEntity, { 'attr': {'class': **Your_dinamic_class_value**} }) }} 
+0

Ну ... Вы были слишком ленивы, если предположить, что я был только ленивый. Уверяю вас, я полностью осознаю два ваших предложения, но это не могло решить мою проблему. Либо я был недостаточно ясен (если так, извините, что английский не мой родной язык), или вы не понимали, что я чувствую. Постараюсь clarrify что: Когда я код, который вы при условии, я получаю это: ''

...
Anass

+1

Только содержащий DIV получает атрибут класса _static_ мы предоставили в вызове form_widget. Я хочу, чтобы каждый элемент ввода получал другой атрибут класса, например ' '. И я не понимаю, как это сделать, не перекрывая все div_form_layout.html.twig! – Anass