Symfony:如何使用query_builder选项将特定项放在第一个位置?

时间:2016-04-09 23:28:03

标签: forms symfony

在表单中,我使用 EntityType 字段,该字段允许从实体成员中选择多个项目。我通过表单选项(名为$selfId的变量)将特定成员的id发送到我的表单,并希望使用query_builder函数返回成员列表特定成员将出现在第一个位置。我怎么能实现这个目标?我正在使用Symfony 3.

我想到这样的事情:

->add('members',    EntityType::class, array(
        'required'      => true,
        'label'         => 'Members',
        'class'         => 'AppBundle:Member',
        'multiple'      => true,
        'query_builder' => function (MemberRepository $er) use ($selfId) {
                                $qb = $er->createQueryBuilder('m');
                                return $qb
                                          ->orderBy('m.id = :selfId') // invented code!!!!!!!
                                          ->setParameter('selfId', $selfId)
                                          ;
                            }
        ))
;

1 个答案:

答案 0 :(得分:0)

您可以在上面的代码中添加一个名为preferred_choices的项目,该项目应该按照您的要求进行操作

http://symfony.com/doc/current/reference/forms/types/entity.html#preferred-choices