Symfony Assert не работает с формой - PullRequest
0 голосов
/ 30 апреля 2018

Я использовал Assert для проверки полей типа

@Assert\NotBlank(message="this field cannot be empty")
$private title;

@Assert\NotBlank(message="this field cannot be empty")
$private description;

@Assert\NotBlank(message="this field cannot be empty")
$private price;

Теперь, когда я использую форму в html.twig

{% body block %}
{{ form(form, {"attr": {"novalidate": "novalidate"}}) }}
{% endblock %}

все в порядке, если у меня есть пустое поле, я получаю свое сообщение, но когда я пытаюсь разделить эту форму, как

{% body block %}

{{ form_start(form, {"attr": {"novalidate": "novalidate"}}) }}
{{ form_widget(form.title) }}
{{ form_widget(form.description) }}
{{ form_widget(form.price) }}
{{ form_rest(form) }}
{{ form_end(form, {"attr": {"novalidate": "novalidate"}}) }}

{% endblock %}

Я получаю что-то вроде сообщения по умолчанию, что не могу добавить объявление, но рядом с моими полями нет сообщений. Что я делаю не так?

Я пытался использовать атрибут novalidate в каждом поле формы, но он все еще не работает

1 Ответ

0 голосов
/ 30 апреля 2018

Вы должны использовать {{ form_row(form.title) }} вместо {{ form_widget(form.title) }} и так далее. Или добавьте {{ form_error(form.title) }} к каждому {{ form_widget(form.title) }} и т. Д.

Объяснение: form_widget отображать только элемент управления т.е. поле ввода или раскрывающийся список. form_row render: form_label - заголовок поля, form_widget - элемент управления, form_error при необходимости - ошибки, прикрепленные к полю. Он также наматывает все на хороший div для группировки связанных частей.

...