Как я могу показать все ошибки в Twig?

#forms #symfony #validation #twig

Вопрос:

Я создаю форму в Symfony 5, и когда проверка ошибочна, я хочу, чтобы, если ошибки верны, показать все ошибки в одной, например: Ошибки:

  • ошибка 1
  • ошибка 2
  • ошибка 3 …

Я использую :

 {% if form_errors(form)|length %}
     <div>Errors:</div>
     {{ form_errors(form) }}
{% endif %}
 

но не на работе.

Как я могу сделать это в Twig?

Комментарии:

1. |lenght должно быть |length , если вы не определили пользовательский фильтр.

Ответ №1:

Вы можете использовать это в своих кодах:

 {% if not form.vars.valid %}
<div>Errors:</div>
    <ul>
        {% for error in form.vars.errors.form.getErrors(true) %}
            <li>{{ error.message }}</li>
        {% endfor %}
    </ul>
{% endif %}
 

Ответ №2:

Вы отображаете все ошибки, используя приведенные ниже

 {# 
If the form is not valid then :
Note: in this case the form variable is : form
 #}
{% if not form.vars.valid %}
<ul>
    {# Loop through every form item #}
    {% for child in form.children %}
        {# Display the errors of the form item #}
        {%for error in child.vars.errors%}
            <li>{{error.message}}</li>
        {%endfor%}
    {%endfor%}
</ul>
{%endif%}
 

Комментарии:

1. Спасибо, но покажите эту ошибку: Ключ «ошибки» для массива с ключами «значение, attr, форма, идентификатор, имя, полное имя, отключено, метка, label_format, label_html, составная часть, исправления блоков, исправление unique_block_prefix, row_attr, домен_данных, label_translation_parameters, attr_translation_parameters, ключ cache_key, нажата» не существует.