I'm currently developping a Symfony application (v2.8) with two main bundles : EasyAdmin and FOSUserBundle.
I have users with a particular role and I'm using a 'findBy' with an array to retrieve those users.
I would like to override the form of my admin controller to fill a select form choices with those users. I know it's possible to do it with an array but I want something dynamic if I add or delete some users.
I don't know how can I call a function from one of my controllers (or do I have to declare it as a service ?) to add choices to select form from a query.
Here is an example of what I would like :
$formBuilder->add('field_to_override', 'choice', array(
'choices' => **my_function**,
'multiple' => true,
'expanded' => true,
));
I hope I'm clear in my explanation.
Thank you in advance !
Consider using an EntityType field, which is a specialized form of Choice field which uses Doctrine entities for the choices.
It is possible to specify a custom query for the choices too, e.g.
$builder->add('users', EntityType::class, array(
'class' => 'AppBundle:User',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.username', 'ASC');
},
));