【问题标题】:Symfony Assert doesnt working with formSymfony Assert 不适用于表单
【发布时间】:2018-04-30 08:49:42
【问题描述】:

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

【问题讨论】:

    标签: php symfony validation assert


    【解决方案1】:

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

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

    【讨论】:

    • 好的,我会在家呆几个小时,我会检查这个解决方案,谢谢:)
    猜你喜欢
    • 2014-08-05
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多