В настоящее время я разрабатываю приложение Symfony (v2.8) с двумя основными пакетами: EasyAdmin и FOSUserBundle.
У меня есть пользователи с определенной ролью, и я использую findBy с массивом для извлечения этих пользователей.
Я хотел бы переопределить форму моего контроллера администратора, чтобы заполнить выбранные формы выбора с этими пользователями. Я знаю, что это можно сделать с помощью массива, но я хочу что-то динамическое, если я добавлю или удалю некоторых пользователей.
Я не знаю, как я могу вызвать функцию с одного из моих контроллеров (или я должен объявить ее как службу?), Чтобы добавить варианты выбора формы из запроса.
Вот пример того, что я хотел бы:
$formBuilder->add('field_to_override', 'choice', array(
'choices' => **my_function**,
'multiple' => true,
'expanded' => true,
));
Надеюсь, я ясно объясню
Заранее спасибо !
Рассмотрите возможность использования Поле EntityType, которая является специализированной формой поля выбора, которая использует сущности доктрины для выбора.
Можно указать пользовательский запрос для выбора, например,
$builder->add('users', EntityType::class, array(
'class' => 'AppBundle:User',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.username', 'ASC');
},
));
Других решений пока нет …