有没有办法根据输入类型在输入的根 div 上应用特定类?
例如:
<div class="radio-input">
<input...
....
</div>
我试图用这个重载“fields.html.twig”:
{% block form_row %}
{% spaceless %}
{% set type = type|default('text') %}
<div class="{{ type }}-input">
{{ form_label(form) }}
{{ form_errors(form) }}
{{ form_widget(form) }}
</div>
{% endspaceless %}
{% endblock form_row %}
但是“type”总是等于“text”。
最佳答案
这不是一个特别好的解决方案,但似乎 block_prefixes
被传递给 block form_row
。 Block_prefixes 是按继承顺序排列的表单字段类型数组,因此名为 first name 的文本字段将有一个 block_prefixes 数组,如:
block_prefixes = array("form","field","text","first_name")
这意味着您可能会从最后一个数组元素中获取第二个并使用它:
{% block form_row %}
{% spaceless %}
<div class="{{ (block_prefixes|slice((block_prefixes|length - 2),1))|first }}-input">
{{ form_label(form) }}
{{ form_errors(form) }}
{{ form_widget(form) }}
</div>
{% endspaceless %}
{% endblock form_row %}
我确信有比这更好的方法,尽管我只是不介意。
P.s 类型是未定义的,这就是为什么它总是 text
因为你将它设置为默认文本
关于css - 如何使用 Symfony2 设置小部件类型的 css 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17232191/