Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting Symfony表单实体/文档对属性进行排序_Sorting_Symfony_Doctrine_Formbuilder - Fatal编程技术网

Sorting Symfony表单实体/文档对属性进行排序

Sorting Symfony表单实体/文档对属性进行排序,sorting,symfony,doctrine,formbuilder,Sorting,Symfony,Doctrine,Formbuilder,我正在使用symfony表单为所有用户创建一个选择框。 我按全名显示它们,但要按字母顺序排序 $builder->add('transferTo', 'document', [ 'class' => 'UserBundle:User', 'property' => 'fullname', 'label' => 'Overdragen aan', 'attr' => ['class' => 'fo

我正在使用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
    ]);

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

您需要的是将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
]);

我假设您实体中的字段名是
u。fullname

可以显示输出的快照和您想要的快照?它输出带有几个选项的常规选择(fullname)。但我希望这些名字按字母顺序排列。没有错误,但我的选择框也没有排序。(ASC或DESC工作)使用ODM(MongoDB)使用条令\ODM\MongoDB\DocumentRepository;'query_builder'=>function(DocumentRepository$repository){return$repository->createQueryBuilder('u')->sort('u.firstName','desc');},但仍然没有排序您使用的是MongoDB吗?是的,我使用的是MongoDB。我用sort代替orderBy,用“document”代替“entity”,用DocumentRepository代替EntityRepository。我的选择框没有排序,但也没有错误。我知道解决方案是将queryBuilder添加到form builder参数中,无论是Doctrine还是MongoDB;如果你能找到它,它会帮你的