web-dev-qa-db-ja.com

Twigテンプレートにフォームフィールドにエラーがあるかどうかの簡単なチェック

Twig templateで、フィールドに次のようなエラーがあるかどうかを確認します。

{% if form.points.get('errors') is not empty %}

次のような方法はありますか?

{% if form.points.hasErrors() %}

もっと簡単にするには?それは大きな違いではありませんが、もし私がそれを簡単にできないなら、なぜそうしないのでしょう。

57
Dawid Ohia

そのメソッドは存在しません。私は通常{% if form.points.vars.errors|length %}

84
Kris Wallsmith

私が見つけたより良い方法は、この種のコードを使用することです

{% if not form.vars.valid %}
<div class="alert alert-error">
    {{ form_errors(form) }}
</div>
{% endif %}
101
birko

フィールドレンダリングをオーバーライドするときにエラーをチェックすることもできます。

{% block field_row %}
{% spaceless %}    
    <div class="control-group {% if errors %}error{% endif %}">
      {{ form_label(form) }}
      <div class="controls">
        {{ form_widget(form) }}        
        {{ form_errors(form) }}        
      </div>
    </div>    
{% endspaceless %}
{% endblock field_row %}
18
jkucharovic

より深いフォームのカスタマイズのために私は:

<div class="form-group {% if form.MYFORMINPUT.vars.valid==false %}has-error{% endif %}">
//some twisted divs
{{form_label(form.MYFORMINPUT)}}
{{form_widget(form.MYFORMINPUT)}}
</div>

Sf2.5

12
d3uter

これは私が使用するものです:

 <div class="form-group {{ form.brand.vars.errors|length > '' ? 'has-error' }}">
0
mrDjouk

空の配列はfalseに解決されるため、既存のチェックを短くすることができます

{% if form.WIDGET_NAME.get('errors') %}
0
Riccardo Galli