我的实体中有电话字段:
/**
* @ORM\Column(type="array")
* @Assert\All({
* @Assert\NotBlank(),
* @Assert\Length(
* min = 5,
* minMessage = "Your phone number must be at least {{ limit }} characters long"
* )
* })
*/
protected $phone;
这些验证的作用是"默认"验证组没有任何问题,但是当我添加这样的验证组时:
/**
* @ORM\Column(type="array")
* @Assert\All({
* @Assert\NotBlank(groups={"profile"}]),
* @Assert\Length(
* min = 5,
* minMessage = "Your phone number must be at least {{ limit }} characters long",
* groups={"profile"}
* )
* })
*/
protected $phone;
它不起作用!也许在语法或其他方面有错误...... 我错过了什么?
答案 0 :(得分:2)
查看官方文档,我可以看到关于此文档的信息很少。
你有没有试过这样的事情:
/**
* @ORM\Column(type="array")
* @Assert\All({
* @Assert\NotBlank(),
* @Assert\Length(min = 5, minMessage = "Your phone number must be at least {{ limit }} characters long")
* }, groups={"profile"})
*/
protected $phone;
答案 1 :(得分:1)
这种方式对我来说在Symfony 2.3(2.3.25)上运行良好:
/**
* @ORM\Column(type="array")
* @Assert\All(
* constraints={
* @Assert\NotBlank(),
* @Assert\Length(min = 5, minMessage = "Your phone number must be at least {{ limit }} characters long")
* },
* groups={"profile"}
* )
*/
protected $phone;
答案 2 :(得分:-1)
你快到了。您必须为要传递给Validator的数组提供一个键,否则您将无法拥有包含多个项目的数组。您只需添加关键约束,然后您就可以添加您的群组了。将组添加到所有验证器非常重要。
/**
* @ORM\Column(type="array")
* @Assert\All(constraints = {
* @Assert\NotBlank(groups={"profile"}]),
* @Assert\Length(
* min = 5,
* minMessage = "Your phone number must be at least {{ limit }} characters long",
* groups={"profile"}
* )
* }, groups={"profile"})
*/
protected $phone;