1

我目前正在开发一个带有两个主要包的 Symfony 应用程序(v2.8):EasyAdmin 和 FOSUserBundle。

我有具有特定角色的用户,我正在使用带有数组的“findBy”来检索这些用户。

我想覆盖我的管理控制器的表单,以用这些用户填写选择表单选项。我知道可以用数组来做,但如果我添加或删除一些用户,我想要一些动态的东西。

我不知道如何从我的一个控制器调用函数(或者我必须将其声明为服务?)以添加选项以从查询中选择表单。

这是我想要的一个例子:

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

我希望我的解释清楚。

先感谢您 !

4

1 回答 1

4

考虑使用EntityType 字段,这是 Choice 字段的一种特殊形式,它使用 Doctrine 实体进行选择。

也可以为选项指定自定义查询,例如

$builder->add('users', EntityType::class, array(
    'class' => 'AppBundle:User',
    'query_builder' => function (EntityRepository $er) {
        return $er->createQueryBuilder('u')
            ->orderBy('u.username', 'ASC');
    },
));
于 2016-05-09T09:15:33.840 回答