dt250827 2016-05-09 09:09
浏览 30
已采纳

使用函数添加选项以选择形式Symfony 2

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 !

  • 写回答

1条回答 默认 最新

  • duankang5285 2016-05-09 09:15
    关注

    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');
        },
    ));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
  • ¥15 差动电流二次谐波的含量Matlab计算
  • ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
  • ¥15 C#如何调用串口数据
  • ¥15 MATLAB与单片机串口通信
  • ¥15 L76k模块的GPS的使用
  • ¥15 请帮我看一看数电项目如何设计
  • ¥23 (标签-bug|关键词-密码错误加密)
  • ¥66 比特币地址如何生成taproot地址
  • ¥20 数学建模数学建模需要