通常我們可以從 樹枝自定義屬性類的輸入字段與的Symfony 3:定製類輸入字段僅如果有錯誤
{{ form_widget(form.username,{'attr':{
'class':'input',
'placeholder':'Write your username'
}}) }}
但如何添加取決於事實類這個字段有錯誤?
例如,我希望我的輸入標籤有一個額外的類「是危險的」,如果有投稿過程中遇到錯誤
通常我們可以從 樹枝自定義屬性類的輸入字段與的Symfony 3:定製類輸入字段僅如果有錯誤
{{ form_widget(form.username,{'attr':{
'class':'input',
'placeholder':'Write your username'
}}) }}
但如何添加取決於事實類這個字段有錯誤?
例如,我希望我的輸入標籤有一個額外的類「是危險的」,如果有投稿過程中遇到錯誤
我找到了一個解決方法由之前設置一個變量:
{% 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'
}}) }}
儘管在模板中發佈所有內容有點麻煩。
你可以用宏改善你的解決方法:
{% 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()
而不是要求將該類添加到窗口小部件本身,而不是將其放在主窗口小部件上。
你用宏試過我的解決方案嗎?它清理了一下。 –