如何修改 fields.html.twig 模板? 我只是在寻找“hello world”等同于看到表单的第一次更改。
什么在起作用(在 add.Article.html.twig 的捆绑 View 中):
<div class="well;">
<form method="post" {{ form_enctype(form) }}>
{{ form_widget(form,{attr: {class:'test'}} ) }}
<input type="submit" class="btn btn-primary" />
</form>
</div>
测试类只做一个 CSS .test{background-color:grey;}。我通常使用 Bootstrap。
在 fields.html.twig 我有:
{% block aliquam_input %}
{% spaceless %}
<div>
{{ form_label(form) }}
{{ form_errors(form) }}
{{ form_widget(form, { 'attr': {'class': 'test'} }) }}
</div>
{% endspaceless %}
{% endblock %}
在 app/config/config.yml 中:
# Twig Configuration
twig:
//..
form:
resources:
- 'AliquamSummaryBundle:Form:fields.html.twig'
fields.html.twig 在主 Twig 上呈现正常,因为我在删除字段 Twig 中的哈希之一时遇到错误。
当我尝试使 fields.html.twig 对 Article.html.twig 生效时,不起作用(即类测试未显示):
{% block aliquam_input %}
{% spaceless %}
<div class="well;">
<form method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<input type="submit" class="btn btn-primary" />
</form>
</div>
{% endspaceless %}
{% endblock %}
由于所有表单都具有相同的格式,所以我不希望将所有 html 属性都设置到每一行。但是如何让“test”类从fields.html.twig模板生效呢?
___________________________ David 的更新 _____________ 谢谢@David,但不幸的是,将名称添加为 form.name 并没有改变任何东西。 CSS属性仍然没有传递到html中的表单中。井后分号的井点;这是一个深夜打字错误,但与问题无关。
这是我目前的想法。我可能最终不得不在表单中为每一行输入 bootstrap CSS(可怕的想法),或者想出如何通过实体选项来做到这一点,这几乎与为每一行做同样的可怕想法。由于文档提供了通过 app/config/config.yml 输入所有表单的模板,因此应该有一种更简单的方法,但我不明白。
下面是到目前为止唯一让 CSS 发挥作用的方向,即 class .test{background-color: black;} 正在发挥作用:
{# ..\addArticle.html.twig #}
<div class="well">
<form method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<input type="submit" class="btn btn-primary" />
</form>
</div>
注意:div 周围没有 {% block .. %},这是有道理的,因为我通过 app/config/config.yml 将 fields.html.twig 包含到 symphony 标准小部件中。以上内容与下面的 fields.html.twig 一起使用。
{# ..\fields.html.twig #}
{% block widget_attributes %}
{% spaceless %}
{{" class=\'test\'" }}
{% endspaceless %}
{% endblock widget_attributes %}
到目前为止,只有带有文本区域的字段显示黑色,有点像“hello world”。我不确定这是否是正确的方法,因为我在这个论坛和其他论坛中没有发现任何类似的东西,并且文档只说明查看 git 上的 form_div_layout.html.twig 来决定要更改哪个属性,这并不是很有帮助(对我来说)。
最佳答案
首先在您的 add.Article.html.twig 中将您的 well; 类更改为 well。
为了在您的小部件上放置一个类,我认为您可以尝试
{{ form_widget(form.name, {'attr': {'class': 'test'}}) }}
您的代码的不同之处在于 form.name 参数。如果您只提供表单,它将不会应用传递的选项。 See the doc
关于Symfony2 的 CSS 形式 : "Hello World" equivalent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22871572/