С помощью простого администратора у вас есть возможность сортировать список по одному полю.
Symfony - Easy Admin v2: Сортировка списков объектов
Но есть ли способ сортировать более чем по одному полю в моем списке?
Как сортировать по нескольким полям внутри списка с помощью простого администратора?
Ответы (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;
}
person
jerkan
schedule
04.09.2019
Спасибо за этот ответ. Единственное изменение, которое я сделал, заключалось в том, чтобы заключить операторы
$queryBuilder->addOrderBy()
в if ...
, чтобы избежать исключений для сущностей без заданных свойств сущности. Пример использования - сортировка по фамилии, имени, которые встречаются только в сущности «Пользователь».
- person geoB; 07.12.2019