问题 将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'))
    ;
}

任何人都有任何想法我可以添加CSS吗?

谢谢


1210
2017-10-09 21:26


起源

在表单类型(逻辑)中添加表示内容(CSS样式,...)在语义上是错误的。所以即使可能,也不要这样做 - Trix


答案:


以下是构建表单时可以执行此操作的方法,

 $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's stylesheets #}
    <link href="{{ asset('bundle/myBundle/css/stylesheet.css') }}" type="text/css" rel="stylesheet" />
{% endblock %}

然后,您可以通过您的网站/目录访问您的公共资产。 最好的方法是创建针对您的捆绑公共资产的符号链接,然后执行

assets:install web/ --symlink

当您想要彻底自定义特定表单字段渲染块(Twig)时,另一种有用的方法是定义新的 形式主题,这是文档> 在Twig中形成主题


15
2017-10-09 21:36





这可能有所帮助:

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

0
2017-10-09 21:31





如果要将字段添加到字段,则必须使用 attr 构建表单的特殊属性 add 以这种方式行动

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

如果您想要链接样式表,则必须使用资产。
您可以在资产上找到更多信息 这里

要使用资产,您需要执行以下操作:

  • 创建你的CSS文件
  • 安装您的资产 assets:install (我建议用 --symlink 除非它们被缓存,否则将反映css更改的选项)
  • 通过在模板中使用CSS来享受CSS。在树枝的情况下,你做<link href="{{ asset('bundles/acmebundle/css/style.css') }}" type="text/css" rel="stylesheet"> (哪里 acmebundle 是你的包)

0
2017-10-10 07:05





这将帮助你:

http://symfony.com/doc/2.0/cookbook/form/form_customization.html#form-theming-in-twig


0
2017-10-10 09:20