Symfony形成对属性进行排序的实体/文档

Mat*_*lde 8 sorting doctrine formbuilder symfony

我正在使用symfony表单为我的所有用户创建一个选择框.我按全名显示它们,但想按字母顺序排序.

$builder->add('transferTo', 'document', [
        'class' => 'UserBundle:User',
        'property' => 'fullname',
        'label'  => 'Overdragen aan',
        'attr' => ['class' => 'form-control selectpicker'],
        'label_attr' => ['class' => 'col-sm-2 control-label'],
        'multiple'  => false,
        'required' => true
    ]);
Run Code Online (Sandbox Code Playgroud)

如何在firstName的全名上按字母顺序对用户进行排序?

Jav*_*vad 19

你需要的是将queryBuilder添加到表单参数

use Doctrine\ORM\EntityRepository;

$builder->add('transferTo', 'document', [
    'class' => 'UserBundle:User',
    'query_builder' => function(EntityRepository $repository) { 
            return $repository->createQueryBuilder('u')->orderBy('u.fullname', 'ASC');
        }
    'property' => 'fullname',
    'label'  => 'Overdragen aan',
    'attr' => ['class' => 'form-control selectpicker'],
    'label_attr' => ['class' => 'col-sm-2 control-label'],
    'multiple'  => false,
    'required' => true
]);
Run Code Online (Sandbox Code Playgroud)

我假设你的实体中的字段名是 u.fullname

  • 使用ODM(MongoDB)使用Doctrine\ODM\MongoDB\DocumentRepository; 'query_builder'=> function(DocumentRepository $ repository){return $ repository-> createQueryBuilder('u') - > sort('u.firstName','desc'); },但仍然没有排序 (2认同)