Как сортировать по нескольким полям внутри списка с помощью простого администратора?

С помощью простого администратора у вас есть возможность сортировать список по одному полю.
Symfony — Easy Admin v2: сортировка списков сущностей
Но есть ли способ отсортировать более одного поля для моего списка?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
7
0
2 967
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете переопределить 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;
}

Спасибо за этот ответ. Единственное изменение, которое я сделал, заключалось в том, чтобы заключить операторы $queryBuilder->addOrderBy() в if ..., чтобы избежать исключений для сущностей без заданных свойств сущности. Вариант использования заключался в сортировке по фамилии и имени, которые встречаются только в сущности пользователя.

geoB 07.12.2019 00:18

Другие вопросы по теме