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

时间:2016-10-13 14:34:01

标签: symfony symfony-forms symfony-validator

我有一个这样的表单字段:

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

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

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

1 个答案:

答案 0 :(得分:5)

您可以使用Count constraint

在您的实体类中:

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

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

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