Добавить 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 является вашим пакетом)
Ответ 4
Это поможет вам:
http://symfony.com/doc/2.0/cookbook/form/form_customization.html#form-theming-in-twig