使用函数将选择添加到 select 表单 Symfony 2
Use function to add choices to select form Symfony 2
我目前正在开发一个带有两个主要包的 Symfony 应用程序 (v2.8):EasyAdmin 和 FOSUserBundle。
我有具有特定角色的用户,我正在使用带有数组的 'findBy' 来检索这些用户。
我想覆盖我的管理控制器的表单,以便为这些用户填写 select 表单选项。我知道可以用数组来做,但如果我添加或删除一些用户,我想要一些动态的东西。
我不知道如何从我的一个控制器调用函数(或者我必须将其声明为服务?)以从查询中向 select 表单添加选项。
这是我想要的示例:
$formBuilder->add('field_to_override', 'choice', array(
'choices' => **my_function**,
'multiple' => true,
'expanded' => true,
));
希望我的解释清楚。
提前致谢!
考虑使用 EntityType field,它是 Choice 字段的一种特殊形式,它使用 Doctrine 实体进行选择。
也可以为选项指定 custom query,例如
$builder->add('users', EntityType::class, array(
'class' => 'AppBundle:User',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.username', 'ASC');
},
));
我目前正在开发一个带有两个主要包的 Symfony 应用程序 (v2.8):EasyAdmin 和 FOSUserBundle。
我有具有特定角色的用户,我正在使用带有数组的 'findBy' 来检索这些用户。
我想覆盖我的管理控制器的表单,以便为这些用户填写 select 表单选项。我知道可以用数组来做,但如果我添加或删除一些用户,我想要一些动态的东西。
我不知道如何从我的一个控制器调用函数(或者我必须将其声明为服务?)以从查询中向 select 表单添加选项。
这是我想要的示例:
$formBuilder->add('field_to_override', 'choice', array(
'choices' => **my_function**,
'multiple' => true,
'expanded' => true,
));
希望我的解释清楚。
提前致谢!
考虑使用 EntityType field,它是 Choice 字段的一种特殊形式,它使用 Doctrine 实体进行选择。
也可以为选项指定 custom query,例如
$builder->add('users', EntityType::class, array(
'class' => 'AppBundle:User',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.username', 'ASC');
},
));