首页 > 解决方案 > 如何使用简单的管理对列表中的多个字段进行排序?

问题描述

使用简单的管理员,您可以对列表的一个字段进行排序。
Symfony - Easy Admin v2:对实体列表进行排序
但是有没有办法对我的列表中的多个字段进行排序?

标签: symfonydoctrine-ormeasyadmin

解决方案


您可以将其覆盖createListQueryBuilder或如此createSearchQueryBuilder所述。

例子:

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;
}

推荐阅读