Symfony 断言不使用表单

Symfony Assert doesnt working with form

我使用 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 属性,但它仍然不起作用

您应该使用 {{ form_row(form.title) }} 而不是 {{ form_widget(form.title) }} 等等。或者将 {{ form_error(form.title) }} 添加到每个 {{ form_widget(form.title) }} 等等。

解释: form_widget 只渲染表单控件,即。输入框或 drop-down。 form_row 呈现:form_label - 字段标题,form_widget - 控件,form_error 如果需要 - 附加到字段的错误。它还将所有内容包装在漂亮的 div 上以对相关部分进行分组。