毫无疑问, 用于渲染表单小部件和错误的Twig帮助器非常易于使用和有用。但是, 它们通常显示有自定义标记, 当我们在项目的某些特定区域工作时, 我们可能会不喜欢它们。就个人而言, 我喜欢将表单的所有错误一起显示在一个简单的列表中, 该表单将在提交表单后向用户显示(当然, 如果有错误的话)。在Twig中, 你可以使用form_errors帮助器轻松打印特定字段的错误, 或者在使用form_row呈现小部件本身时自动将其包括在内:
{# Displays global errors not specific to one field #}{{ form_errors(form) }}{# Displays errors specific to field #}{{ form_errors(form.email) }}{# Displays form_widget form_label and form_errors for field #}{{ form_row(form.email) }}
但是, 正如我们的需求所述, 此操作没有用, 因为错误会出现在每个字段下, 对于某些设计而言这很糟糕。有一种更简便的方法来获取所有已捕获的表单错误(约束失败)列表, 当提交的信息不正确时可以向用户显示。从Symfony 4中的控制器发送到Twig的form变量包含vars属性, 该属性包含多个属性, 这些属性包含有关用于表单的实体, 当前值, 方法, 数据以及对我们重要的信息, 表格的错误。
检查完成上述逻辑的以下代码段(当然, 将MyFormVariable替换为你的form变量):
{# For convenience sake of this snippet, store the errors in a variable #}{% set formErrors = MyFormVariable.vars.errors.form.getErrors(true) %}{# If there are errors in the form, display them in this unorganized list #}{% if formErrors|length %}<
ul>
{% for error in formErrors %}<
li>
{{ error.message }}<
/li>
{% endfor %}<
/ul>
{% endif %}
这个简短而有用的代码段将使你可以在一个简单列表中显示表单中每个字段的所有错误, 该错误列表仅向用户显示一次, 而不必强迫他向下滚动页面以查看哪些字段不正确有效。
【如何在Symfony 4中使用Twig渲染列表中的表单错误】编码愉快!
推荐阅读
- 确保通过云电话不会错过你最重要的业务呼叫的7种方法
- DevOps准备注入AI/ML的12个理由
- JS对象拷贝(深拷贝和浅拷贝)
- #导入MD文档图片# 使用 HTMLCSSJS 和 API 制作一个很棒的天气 Web 应用程序
- JavaScript 中的高阶函数
- 仿得物微信小程序(动手就会
- 小小装饰器
- web技术分享| 实现WebRTC多个对等连接
- SpringBoot技术专题「Tomcat技术专区」用正确的姿势如何用外置tomcat配置