如何使用简单的管理对列表中的多个字段进行排序?
Posted
技术标签:
【中文标题】如何使用简单的管理对列表中的多个字段进行排序?【英文标题】:How to sort on multiple field inside a list with easy admin? 【发布时间】:2019-10-21 23:30:57 【问题描述】:通过简单的管理,您可以对列表的一个字段进行排序。Symfony - Easy Admin v2: Sorting Entity Listings 但是有什么方法可以对我的列表中的多个字段进行排序?
【问题讨论】:
【参考方案1】:您可以覆盖createListQueryBuilder
或createSearchQueryBuilder
,如here 所述。
例子:
protected function createListQueryBuilder($entityClass, $sortDirection, $sortField = null, $dqlFilter = null)
/* @var EntityManager */
$em = $this->getDoctrine()->getManagerForClass($this->entity['class']);
/* @var QueryBuilder */
$queryBuilder = $em->createQueryBuilder()
->select('entity')
->from($this->entity['class'], 'entity')
;
if (!empty($dqlFilter))
$queryBuilder->andWhere($dqlFilter);
$queryBuilder->addOrderBy('entity.status', 'ASC');
$queryBuilder->addOrderBy('entity.createdAt', 'DESC');
return $queryBuilder;
【讨论】:
感谢您的回答。我所做的唯一更改是将$queryBuilder->addOrderBy()
语句包含在if ...
中,以避免在没有给定实体属性的实体上出现异常。用例是按姓氏、名字排序,这仅出现在用户实体中。以上是关于如何使用简单的管理对列表中的多个字段进行排序?的主要内容,如果未能解决你的问题,请参考以下文章
应该如何对列表中的项目进行重新排序,并更新多个对象,如何使用 GraphQL 突变进行持久化?