Добавить CSS в тип формы - Symfony2

У меня есть форма редактирования. Форма создается через типы форм symfony2. Я проверил документацию, но не смог найти вариант добавления CSS в форму. Форма отображает данные правильно, и все прекрасно, что я хочу сделать, это добавить стиль в каждое поле.

Мой тип редактирования

 public function buildForm(FormBuilder $builder, array $options)
{
    $builder
    ->add('id', 'hidden')
    ->add('patent_name', 'text', array('label' => 'Patent Name'))
    ->add('description', 'textarea', array('label' => 'Description', 'required' => false))
    ->add('appln_auth','text', array('label' => 'Application Authorization'))
    ;
}

У кого-нибудь есть идея ho я могу добавить css?

Спасибо

Ответ 1

Вот как вы можете это сделать при создании своей формы,

 $builder->add('field_name', 'text', array('label' => 'Field Label', 'attr' => array('class' => 'fieldClass')));

Вы также можете сделать это при рендеринге полей формы, посмотрите Ссылка на функцию формы шаблона Twig

{{ form_label(form.field, 'label', { 'attr': {'class': 'foo'} }) }}
{{ form_widget(form.field, { 'attr': {'class': 'bar'} }) }}

Затем вы можете добавить файл css в свои общие активы и вызвать его в своем шаблоне, используя

{% block stylesheets %}
    {% parent() %} {# if you want to keep base template stylesheets #}
    <link href="{{ asset('bundle/myBundle/css/stylesheet.css') }}" type="text/css" rel="stylesheet" />
{% endblock %}

Затем вы должны сделать свои публичные активы доступными через ваш веб-каталог. Лучший способ сделать это - создать символические ссылки, предназначенные для ваших общих активов пакета, тогда вы выполните

assets:install web/ --symlink

Еще один полезный подход, когда вы хотите полностью настроить конкретный блок рендеринга поля формы (Twig), - это определить новую тему формы здесь документация > Формировать теги в Twig.

Ответ 2

Это может помочь:

$builder->add('patent_name', 'text', array('label' => 'Patent Name', 'attr' => array('class' => 'someclass')));

Ответ 3

Если вы хотите добавить класс в свои поля, вы должны использовать специальный атрибут attr с вашей формой формы add.

$builder->add('field_name', 'yourType', array('attr' => array('class' => 'fieldClass')));

Если вы хотите связать свою таблицу стилей, вы должны использовать активы.
Вы можете найти больше об активах здесь

Для работы с активами, которые вы должны выполнить:

  • создайте свой файл css
  • установите свои ресурсы с помощью assets:install (я предлагаю использовать опцию --symlink, которая будет отображать изменения css, если они не кэшированы)
  • наслаждайтесь своим CSS, используя его в своем шаблоне. В случае веточки вы делаете это с acmebundle является вашим пакетом)