2017-08-06 87 views
1

通常我們可以從 樹枝自定義屬性類的輸入字段與的Symfony 3:定製類輸入字段僅如果有錯誤

{{ form_widget(form.username,{'attr':{ 
     'class':'input', 
     'placeholder':'Write your username' 
    }}) }} 

但如何添加取決於事實類這個字段有錯誤?

例如,我希望我的輸入標籤有一個額外的類「是危險的」,如果有投稿過程中遇到錯誤

回答

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' 
       }}) }} 

儘管在模板中發佈所有內容有點麻煩。

+0

你用宏試過我的解決方案嗎?它清理了一下。 –

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()而不是要求將該類添加到窗口小部件本身,而不是將其放在主窗口小部件上。

相關問題