Symfony:如何对ArrayCollection使用断言/验证

时间:2016-11-29 08:02:43

标签: symfony symfony-forms

在Symfony 3中,不允许再使用cascade_validation。所以你必须为类型做一个断言。但它不起作用,即使字段是BLANK但Assert表示NOtBlank,表单也是有效的。我有一个类参与者,我想在检查我的参与者模型时检查Adults ArrayCollection。

//Participant Model
    /**
         * @var ArrayCollection
         * @Assert\All({
         *     @Assert\Type(type="My\WebsiteBundle\Model\Adult"),
         * })
         */
        protected $adults;

//Adult Model
    class Adult
    {
        /**
         * @var string
         *
     * @Assert\NotBlank()
     */
    protected $salutation;

    /**
     * @var string
     *
     * @Assert\NotBlank()
     */
    protected $firstname;

    /**
     * @var string
     *
     * @Assert\NotBlank()
     */
    protected $lastname;

1 个答案:

答案 0 :(得分:5)

您应该使用doc

中{{3}}所述的有效声明

例如:

    /**
     * @var ArrayCollection
     *
     * @Assert\All({
     *     @Assert\Type(type="My\WebsiteBundle\Model\Adult"),
     * })
     * @Assert\Valid
     */
    protected $adults;

希望这个帮助