我有一个具有多个选择的实体字段类型:
$builder
->add('products', 'entity', array(
'class' => 'Acme\MyBundle\Entity\Product',
'choices' => $this->getAvailableProducts(),
'multiple' => true,
))
;
我想在此字段上添加最小/最大约束
use Symfony\Component\Validator\Constraints\Choice;
...
'constraints' => array(new Choice(array(
'min' => $min,
'max' => $max,
'multiple' => true,
'choices' => $this->getAvailableProducts()->toArray(),
))),
但是在这种情况下,当绑定表单时,'products'字段的值绑定是一个doctrine ArrayCollection,如果没有给出数组,验证器会抛出异常。 “类型数组的预期参数,对象给出”
这是否意味着我必须使用'choice'字段才能使用最小/最大约束?
答案 0 :(得分:5)
当你有多个设置为true时,验证器将在绑定表单后收到一个集合。
您可以使用count验证约束来验证集合中的entites数量。
验证给定集合(即数组或对象) 实现Countable)元素计数介于最小值和最小值之间 最大值。