使用symfony2';“s表格类型”;“收藏”;,如何验证至少已提交一份表格?

使用symfony2';“s表格类型”;“收藏”;,如何验证至少已提交一份表格?,symfony,doctrine,Symfony,Doctrine,我过去常常嵌入一组表单。如何添加验证以确保表单至少与一个表单一起提交?也许您应该在表单类型类或实体类中至少为此表单设置一个字段作为必需的断言注释?并在集合中调用 Symfony现在有一个Count约束,可用于集合类型来设置最小项数: use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Form\Extension\Core\Type\CollectionType; $formBuilder-&

我过去常常嵌入一组表单。如何添加验证以确保表单至少与一个表单一起提交?

也许您应该在表单类型类或实体类中至少为此表单设置一个字段作为必需的断言注释?

并在集合中调用

Symfony现在有一个
Count
约束,可用于集合类型来设置最小项数:

use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;

$formBuilder->add('example', CollectionType::class, [
  // other options...
  'constraints' => [
    new Assert\Count([
      'min' => 1,
      'minMessage' => 'Must have at least one value',
      // also has max and maxMessage just like the Length constraint
    ]),
  ],
]);

我发现,即使我没有提交任何与嵌入集合相关的内容,传递到验证器的ArrayCollection仍然会附加所有最初绑定的对象。您是否只是计算了您知道这些实体应该具有的值(显然没有设置),或者我的验证是否应该级联得更好?集合中的实体上的空值为@Assert\NotBlank。