Используйте функцию, чтобы добавить варианты выбора формы Symfony 2

В настоящее время я разрабатываю приложение Symfony (v2.8) с двумя основными пакетами: EasyAdmin и FOSUserBundle.

У меня есть пользователи с определенной ролью, и я использую findBy с массивом для извлечения этих пользователей.

Я хотел бы переопределить форму моего контроллера администратора, чтобы заполнить выбранные формы выбора с этими пользователями. Я знаю, что это можно сделать с помощью массива, но я хочу что-то динамическое, если я добавлю или удалю некоторых пользователей.

Я не знаю, как я могу вызвать функцию с одного из моих контроллеров (или я должен объявить ее как службу?), Чтобы добавить варианты выбора формы из запроса.

Вот пример того, что я хотел бы:

$formBuilder->add('field_to_override', 'choice', array(
'choices' => **my_function**,
'multiple' => true,
'expanded' => true,
));

Надеюсь, я ясно объясню

Заранее спасибо !

1

Решение

Рассмотрите возможность использования Поле EntityType, которая является специализированной формой поля выбора, которая использует сущности доктрины для выбора.

Можно указать пользовательский запрос для выбора, например,

$builder->add('users', EntityType::class, array(
'class' => 'AppBundle:User',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.username', 'ASC');
},
));
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]