如何使用 EntityType 表单类型避免复选框列表中的空值?

How to avoid empty values from checkbox list by using EntityType form type?

我有一个这样的表单域:

$form->add('tags', EntityType:class, array(
    'class' => Tags::class,
    'multiple' => true,
    'expanded' => true,
    'required' => true,
));

这呈现了一个很好的复选框列表,我需要确保在提交表单后至少选择了一个选项,但即使 required 选项是 true 它也不起作用,我试过 NotBlank()NotNull() 约束,也不起作用(即表格有效)。

如何使用 EntityType 表单类型避免复选框列表中出现空值?

您可以使用 Count constraint.

在您的实体中 class:

/**
 * @Assert\Count(
 *      min = "1",
 *      minMessage = "You must specify at least one tag"
 * )
 */
protected $tags

请注意,您可以指定 max 参数和相应的消息。

此外,required 选项只会将 required 添加到客户端的字段中,它不会在服务器端执行任何操作。