Validation Symfony2约束实体验证yml

Validation Symfony2约束实体验证yml,validation,symfony,entity,type-constraints,Validation,Symfony,Entity,Type Constraints,我有一个多对多关系(用户和帐户)。在用户实体中,我有私有属性组(数组集合) 当我试图用一个简单的“NotBlank”来验证这个属性(组)时,这是行不通的。所以我在下面尝试一下(收集和选择) 我读了这个 但是它不起作用,或者我没有正确地使用它们 谁能给我一些帮助 /* USER accounts property ... /** * @ORM\ManyToMany(targetEntity="Account", mappedBy="users", cascade={"persist", "

我有一个多对多关系(用户和帐户)。在用户实体中,我有私有属性组(数组集合)

当我试图用一个简单的“NotBlank”来验证这个属性(组)时,这是行不通的。所以我在下面尝试一下(收集和选择)

我读了这个 但是它不起作用,或者我没有正确地使用它们

谁能给我一些帮助

/* USER accounts property 

...

/**
 * @ORM\ManyToMany(targetEntity="Account", mappedBy="users", cascade={"persist", "remove"})
 */
 private $accounts;

...
大于用户类型

...
->add('accounts', 'genemu_jqueryselect2_entity', array(
                    "class"         => "CMiNewsBundle:Account",
                    "property"      => "name",
                    "multiple"      => "true",
                    "query_builder" => function (EntityRepository $er) use ($user)
                    {
                          return $er->createQueryBuilder('acc')
                                    ->join('acc.users','u')
                                    ->where('u.id = :userID')
                                    ->setParameter('userID' , $user);
                    }
                    )
)
...
验证。yml

CM\Bundle\iNewsBundle\Entity\User:
    properties:

        ...

        accounts:
            - NotBlank: ~

        ...
“NotBlank”断言检查属性===null | |属性===''。由于您的属性是一个集合,您可能会在构造函数中将其初始化为ArrayCollection,这样它就永远不会为null

对于集合,您应该使用“Count”断言


它强制您设置“最大”计数和最小计数,因此您可能希望创建自己的断言。

太好了,工作正常!谢谢你的帮助。事实上,我必须创建自己的断言。嗨,在Symfony 3.0中,我没有被迫设置最大值。但是为了使它在我的表单中工作,我必须设置正确的验证组来启用约束。别忘了这一点,节省大量时间!;)