如何在 formbuilder 中对 entityType 字段的 group_by 选项进行排序?
How can I sort group_by option for entityType field in formbuilder?
我将我的 $entity 输出与 frombuilder 分组:
$options['group_by'] = function ($entity) {
if ($entity->getCategory() != null) {
return $entity->getCategory()->getName();
} else {
return "all";
}
};
这是我的下拉菜单的输出:
colors
blue
red
green
all
colors
friends
friends
elephant
monkey
但我喜欢按字母顺序排列的组。我期望的输出是:
all
colors
friends
colors
blue
red
green
friends
elephant
monkey
我在文档中找不到执行此操作的任何提示 https://symfony.com/doc/current/reference/forms/types/entity.html#group-by
有机会吗?
您可以通过自定义 QueryBuilder 按组名对选项进行排序:
$builder->add('...', EntityType::class, [
'class' => YourEntity::class,
'query_builder' => function (EntityRepository $repository) {
return $repository->createQueryBuilder('entity')
->leftJoin('entity.category', 'category')
->addSelect('CASE WHEN entity.category IS NULL THEN \'all\' ELSE category.name END AS HIDDEN category_name')
->orderBy('category_name', 'ASC')
->addOrderBy('entity.name', 'ASC');
},
'group_by' => ...,
]);
https://symfony.com/doc/current/reference/forms/types/entity.html#ref-form-entity-query-builder
我将我的 $entity 输出与 frombuilder 分组:
$options['group_by'] = function ($entity) {
if ($entity->getCategory() != null) {
return $entity->getCategory()->getName();
} else {
return "all";
}
};
这是我的下拉菜单的输出:
colors
blue
red
green
all
colors
friends
friends
elephant
monkey
但我喜欢按字母顺序排列的组。我期望的输出是:
all
colors
friends
colors
blue
red
green
friends
elephant
monkey
我在文档中找不到执行此操作的任何提示 https://symfony.com/doc/current/reference/forms/types/entity.html#group-by 有机会吗?
您可以通过自定义 QueryBuilder 按组名对选项进行排序:
$builder->add('...', EntityType::class, [
'class' => YourEntity::class,
'query_builder' => function (EntityRepository $repository) {
return $repository->createQueryBuilder('entity')
->leftJoin('entity.category', 'category')
->addSelect('CASE WHEN entity.category IS NULL THEN \'all\' ELSE category.name END AS HIDDEN category_name')
->orderBy('category_name', 'ASC')
->addOrderBy('entity.name', 'ASC');
},
'group_by' => ...,
]);
https://symfony.com/doc/current/reference/forms/types/entity.html#ref-form-entity-query-builder