我有一个多对多的关系(用户和帐户)。在用户实体中,我有私有属性组(数组集合)。
当我尝试用一个简单的"NotBlank"来验证这个属性(组)时,它不起作用。所以我在下面尝试(收集和选择)。
我读过这个http://symfony.com/fr/doc/2.3/reference/constraints/Choice.html这个http://symfony.com/fr/doc/2.3/reference/constraints/Collection.html但它不起作用,或者我没有正确使用它们。
有人能帮我吗?
/* USER accounts property
...
/**
* @ORMManyToMany(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
CMBundleiNewsBundleEntityUser:
properties:
...
accounts:
- NotBlank: ~
...
"NotBlank"assert检查属性===null ||属性===''。由于您的属性是一个集合,您可能会在构造函数中将其初始化为ArrayCollection,这样它就永远不会为null。
对于集合,您应该使用"计数"断言
http://symfony.com/doc/current/reference/constraints/Count.html
它强制您设置"最大"计数和最小计数,因此您可能希望创建自己的断言。