1

一般的なエラーのレンダリングのために form_errors を変更せずに、フォーム フィールド エラーのレンダリング用に特定の新しいブロックを定義しようとしています。

# Twig Configuration
twig:
  debug:            %kernel.debug%
  strict_variables: %kernel.debug%
    form:
      resources:
        - 'ApplicationMyBundle:Main:form/customFormTheme.html.twig'

にプラスcustomFormTheme.html.twigからコピーしたいくつかのブロックを上書きしform_div_layout.html.twig、次の新しいブロックを追加しました。

{% block field_errors %}{% spaceless %}
        {% if errors|length > 0 %}
        <ul class="errors">
            {% for error in errors %}
                {% if error.messageTemplate|length %}
                <li class="error">{{ error.messageTemplate|trans(error.messageParameters, 'validators') }}</li>
                {% endif %}
            {% endfor %}
        </ul>
        {% endif %}
{% endspaceless %}{% endblock %}

次に、このブロックをビューで次のように使用できると期待しています。

 <div>
     {{ form_label(form.message, 'message.label'|trans({},'contact')|raw ) }}
     {{ form_widget(form.message, {attr: {maxlength:1000, size:1000, rows:8}}) }}
     {{ field_errors(form.message) }}
 </div>

しかし、次のエラーが表示されます。

The function "field_errors" does not exist. Did you mean "form_errors"

ブロックに名前を付けたり、ここで言及しtext_errorsたりすることも試みましたが、幸運ではありませんでした。textarea_errors

何か案が ?

4

1 に答える 1