我有:
/**
* @Assert\Length(
* min = 8,
* minMessage = "message.erreur.affich1"
* )
* @Assert\Length(
* max = 20,
* maxMessage = "message.erreur.affich1"
* )
* @Assert\Regex(
* pattern="/(?=.*\d)(?=.*[a-zA-Z])/",
* match=true,
* message="message.erreur.affich1"
*
* )
*/
private $plainPassword;
我想针对这3种情况显示1条消息,但我不能。 我有3次出现的相同消息。
该如何执行,即使不遵守3个条件,也只显示1条错误消息? 我唯一的解决方案可能是使用正则表达式做所有事情...
谢谢
答案 0 :(得分:0)
您可以创建一个自定义验证约束,在其中检查所有三个断言,并在需要时应用错误消息。要一次对所有三个条件使用单个自定义声明,您需要创建一个适用于整个实体的“类”验证器。这是文档的链接-http://symfony.com/doc/current/validation/custom_constraint.html#class-constraint-validator
答案 1 :(得分:0)
您有两个选择:
您可以使用custom validation constraint来验证整个实体,并根据需要提供合并的输出。
您不完全依赖于如何将验证错误提供给表单,而是在收集到验证错误后使用validation service。
我个人会选择选项2,但这取决于您是否使用Forms / Twig等,需要使用的频率,是否“汇总错误消息”是唯一需要的自定义设置,等等。
因此,如果您立即对1或2不满意,则必须向我们提供更多详细信息。