Как избежать пустых значений из списка флажков, используя тип формы EntityType?

#symfony #symfony-forms #symfony-validator

#symfony #symfony-forms #symfony-валидатор

Вопрос:

У меня есть поле формы, подобное этому:

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

Это создает хороший список флажков, и мне нужно убедиться, что после отправки формы выбран хотя бы один вариант, но даже если этот required вариант true не работает, я пробовал с NotBlank() NotNull() ограничениями и, также не работает (т. Е. Форма действительна).

Как избежать пустых значений из списка флажков, используя EntityType тип формы?

Ответ №1:

Вы можете использовать ограничение Count .

В вашем классе сущностей:

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

Обратите внимание, что вы можете указать max параметр и соответствующее сообщение.

Кроме того, required опция добавления только required в ваше поле на стороне клиента, она ничего не делает на стороне сервера.