Простая проверка, если поле формы имеет ошибки в шаблоне ветки
в шаблоне Twig я проверяю, есть ли в поле такая ошибка:
{% if form.points.get('errors') is not empty %}
есть ли какой-либо метод, как:
{% if form.points.hasErrors() %}
сделать это проще? Это не большая разница, но если я не могу сделать это проще, почему бы и нет.
8 ответов:
лучший способ, который я нашел, это использовать такой код
{% if not form.vars.valid %} <div class="alert alert-error"> {{ form_errors(form) }} </div> {% endif %}
вы также можете проверить наличие ошибок при переопределении рендеринга полей:
{% 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 %}
для более глубокой настройки формы я делаю:
<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
поскольку пустой массив разрешается в false, вы можете сократить существующую проверку до
{% if form.WIDGET_NAME.get('errors') %}
вот что я использую:
<div class="form-group {{ form.brand.vars.errors|length > '' ? 'has-error' }}">
у меня была похожая проблема, но
form.points
не существует в моих шаблонах веточек.Я должен был получить количество ошибок в контроллере, а затем передать его в Мои шаблоны в качестве переменной.
$form->getErrors()
не ведет себя так, как вы могли бы ожидать в вашем контроллере, хотя. Смотрите это так вопрос для функции, которая будет получать ошибки формы правильно.