Symfony2 validation.yml表示Array字段类型的值

时间:2014-09-25 15:55:35

标签: validation symfony

对于每个用户,我都有姓名,电话号码。我需要在validation.yml中验证这些字段以检查它们是否为空。对于名称和姓氏验证,我有这个并且它运作良好:

RFQ\IronilBundle\Entity\User:
properties:
    name:
        - NotBlank: { groups: [not_empty] }
    surname:
        - NotBlank: { groups: [not_empty] }

问题在于我无法在文档中找到如何验证电话字段的任何示例,因为每个用户可以拥有多个电话号码。我的电话实体是:

/**
 * @ORM\Column(type="array", nullable=true)
 * @Assert\NotNull()
 */
protected $phone;

并且在注册时我在数据库中插入空数组值(我需要这个在我的编辑操作中显示空的手机字段):

public function __construct() {
    parent::__construct();
    $this->phone = array('');
}

谢谢!

1 个答案:

答案 0 :(得分:2)

有一个All验证类型会迭代arraysTraversable个对象,并对它们应用约束。因此,例如,如果要确保每个电话元素最多10个字符,则可以执行以下操作:

RFQ\IronilBundle\Entity\User:
properties:
    name:
        - NotBlank: { groups: [not_empty] }
    surname:
        - NotBlank: { groups: [not_empty] }
    phone:
        - All:
            - NotBlank:  ~
            - Length:
                max: 10

reference documentation