3

複数選択のエンティティ フィールド タイプがあります。

$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' フィールドにバインドされる値はドクトリン ArrayCollection になり、配列が指定されていない場合、バリデーターは例外をスローします。「配列型の引数が必要ですが、オブジェクトが指定されました」

最小/最大制約を使用するには、「選択」フィールドを使用する必要があるということですか?

4

1 に答える 1