Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2实体字段类型的选择约束/验证_Php_Symfony_Doctrine Orm - Fatal编程技术网

Php Symfony2实体字段类型的选择约束/验证

Php Symfony2实体字段类型的选择约束/验证,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我有一个具有多个选择的实体字段类型: $builder ->add('products', 'entity', array( 'class' => 'Acme\MyBundle\Entity\Product', 'choices' => $this->getAvailableProducts(), 'multiple' => true, )) ; 我想在此字段上添加最小/最大约束 use Symfony\Component\Vali

我有一个具有多个选择的实体字段类型:

$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,如果没有给出数组,验证器将抛出异常。应为数组类型的参数,对象已给定


这是否意味着我必须使用“选择”字段才能使用最小/最大约束?

由于您将多个设置为true,验证程序将在绑定表单后收到一个集合

可以使用验证约束验证集合中的实体数

计数验证约束 验证给定集合的 实现可计数)元素计数介于某个最小值和 最大值


好啊但我如何才能将最小/最大约束添加到我的集合验证?啊,对不起,我想我误解了你的问题。您想验证所选实体的数量,对吗?是的!我只希望能够指定可选择实体的最小/最大数量,然后需要计数验证约束;)更新了我的答案。我的答案对你有用吗?(事实上应该是)如果是,请投票/接受,否则请留下评论,以便我们进一步追踪。