form_errors в symfony отображает элемент списка, а не просто текст

Кажется, что оператор $in отлично выполнит ваши цели.

Вы могли бы сделать что-то вроде этого (псевдо-запрос):

if (db.courses.find({"students" : {"$in" : [studentId]}, "course" : courseId }).count() > 0) {
  // student is enrolled in class
}

В качестве альтернативы вы можете удалить предложение "course" : courseId и вернуть набор всех классов, в которые учащийся участвовал.

0
задан frosty 23 February 2019 в 19:29
поделиться

2 ответа

Полагаю, это правильное поведение, поскольку вы можете иметь несколько ошибок для одного поля, например «Имя пользователя слишком короткое» и «Имя пользователя поля содержит недопустимые символы», но для получения только первой ошибки вы можете использовать:

[ 110]

Или вы можете настроить рендеринг form_errors, сначала создайте файл для form_errors, например your_form / custom_form_errors.html.twig:

{% block form_errors %}
    {% spaceless %}
          <div class="error">{{ errors|first }}</div>
    {% endspaceless %}
{% endblock %}

И после этого включите его в файл представления: [115 ]

{% form_theme form 'your_form/custom_form_errors.html.twig' %}

...

{{ form_errors(registrationForm.username) }}
0
ответ дан Andrii Filenko 23 February 2019 в 19:29
поделиться

просто чтобы расширить ответ @Andrii Filenko. Вы можете довольно легко изменить вывод функции form_errors или любой другой формы. в Symfony это называется пользовательские темы.

Рассмотрим это:

// templates/register.html.twig

{% extends "base.html.twig" %}

{% form_theme registrationForm _self %}

{% block form_errors %}
  {% spaceless %}
    {% if errors|length > 0 %}
    <ul class="changed list">
        {% for error in errors %}
            <li>{{ error.message }}</li>
        {% endfor %}
    </ul>
    {% endif %}
   {% endspaceless %}
{% endblock form_errors %}

{% block body %}{% endblock %}

Вывод:

<ul class="changed list"><li> Username already exists </li></ul>
0
ответ дан kenzotenma 23 February 2019 в 19:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: