Forms Symfony2表单验证-如何仅显示每个字段的第一条错误消息
我有一个包含验证规则集的字段:Forms Symfony2表单验证-如何仅显示每个字段的第一条错误消息,forms,validation,symfony,Forms,Validation,Symfony,我有一个包含验证规则集的字段: /** * @var integer * * @ORM\Column(name="options", type="integer") * @Assert\NotBlank() * @Assert\Min(limit = "1381", message = "Please provide number higher than 1381") * @Assert\Regex(pattern = "/^\d{4}$/" , message = "Four di
/**
* @var integer
*
* @ORM\Column(name="options", type="integer")
* @Assert\NotBlank()
* @Assert\Min(limit = "1381", message = "Please provide number higher than 1381")
* @Assert\Regex(pattern = "/^\d{4}$/" , message = "Four digits are expected")
*/
private $options;
有时Symfony似乎在检查每个断言(好的)并呈现视图中的每个错误(不期望的)。提交选项为5的表单后,我看到了下面的错误消息
Options
- Please provide number higher than 1381
- Four digits are expected
但当我发送选项=null时,只显示一条错误消息
Options
- This value should not be blank.
是否存在导致模板中只呈现一条错误消息的“开关”?我希望在我的表单中每个字段只有一条错误消息
=======编辑========作者:伯恩哈德·舒塞克
Patt谢谢你给我指出那里一个选项是修改模板/块以获得表单错误块(这样模板中的每个表单都将获得所需的行为)。或替代上的窗体布局 如果您去查看Symfony标准版附带的,您可以在
表单上看到错误
twig块
已定义
您可以在给定模板中覆盖此块(根据文档),以便仅从错误数组中回显一个元素:
{#SomeTemplate:默认值:index.html.twig}
{%extends':base.html.twig%}
{%form\u主题form\u self%}
{%block form_errors%}
{%spaceless%}
{%如果错误|长度>0%}
{{错误[0]。消息}
{%endif%}
{%endspaceless%}
{%endblock form_errors%}
{%block content%}
{#…呈现表单#}
{{form_rest(form)}
{%endblock%}
一个很好的方法是按照symfony form guru@Bernhard的建议使用:)这是我需要的技巧-请键入答案让我投票。谢谢你的帮助,不用担心这个节日。这是一个很难回答的问题。也许你可以对他的答案进行投票并编辑你的问题,这样人们就可以链接到Bernard的答案:)错误|如果有错误,长度将始终为1,如果没有错误,长度将始终为0。因此,即使您有2个错误(2个有错误的字段)-您将得到字段{{id}}的always count==1。我的建议是使用JS并隐藏1个以上的错误