通常我们可以自定义输入字段的属性类 树枝与
{{ form_widget(form.username,{'attr':{
'class':'input',
'placeholder':'Write your username'
}}) }}
但是如何根据此字段有错误的事实添加一个类?
例如,如果在提交过程中遇到错误,我希望我的输入标记有一个额外的类“is-danger”
答案 0 :(得分:0)
我之前通过设置变量找到了解决方法:
{% if form_errors(form.username) is not empty %}
{% set class = "input is-danger" %}
{% else %}
{% set class = "input" %}
{% endif %}
{{ form_widget(form.username,{'attr':{
'class':class,
'placeholder':'Write your username'
}}) }}
虽然在模板中发布所有这些内容有点麻烦。
答案 1 :(得分:0)
您可以使用宏来改进您的解决方法:
{% macro inputClass(field) %}
{% spaceless %}
class="input{% if form_errors(field) is not empty %} is-danger{% endif %}"
{% endspaceless %}
{% endmacro %}
然后
{{ form_widget(form.username, {'attr': {
'class': inputClass(form.username),
'placeholder': 'Write your username'
}}) }}
如果您想要更全面的解决方案,您应该能够override a form block。或者,不是将属性放在主窗口小部件上,而是可以自定义form_errors()
调用,而不是要求将该类添加到窗口小部件本身。