简单检查 Twig 模板中的表单字段是否有错误
在 Twig 模板中,我检查某个字段是否有这样的错误:
{% if form.points.get('errors') is not empty %}
是否有类似的方法:
{% if form.points.hasErrors() %}
做起来更简单?这没什么大区别,但如果我不能做得更容易,为什么不呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
如果您使用的 symfony 版本 >= 4,您可以使用此代码检查是否存在错误
If you are using symfony version >= 4, you can check errors existence with this code
检查表单是否有错误的最简单方法:
Symfony 版本 >= 4
The simplest way of checking whether the form has an error:
Symfony version >= 4
这就是我使用的:
This is what i use :
由于空数组解析为 false,因此您可以将现有检查缩短为
Since an empty array resolves to false, you can shorten your existing check to
我创建了一个树枝扩展来处理这个问题:
我的扩展
我在twig中像这样使用它
i have create a twig extension to handle this:
my extension
i use it like this in twig
我遇到了类似的问题,但我的树枝模板中不存在
form.points
。我必须获取控制器中的错误数量,然后将其作为变量传递到我的模板中。不过,
$form->getErrors()
的行为与您在控制器中的预期不同。请参阅 这个问题 用于正确获取表单错误的函数。I had a similar problem, but
form.points
doesn't exist in my twig templates.I had to get the number of errors in the controller, then pass it into my templates as a variable.
$form->getErrors()
does not behave as you might expect in your controller though. See this SO question for a function that will get the form errors correctly.我发现更好的方法是使用这种代码
better way I found, is to use this kind of code
该方法不存在。我通常会这样做
{% if form.points.vars.errors|length %}
。That method does not exist. I typically do
{% if form.points.vars.errors|length %}
.您还可以在覆盖字段渲染时检查错误:
You can also check for errors when overriding field rendering:
对于更深入的形式定制,我做:
Sf2.5
For deeper form customization I do:
Sf2.5