With easy admin you have the possibility to sort on one field for a list.
Symfony - Easy Admin v2: Sorting Entity Listings
But is there any way to sort on more than one field for my list ?
Asked
Active
Viewed 4,059 times
7

circulosmeos
- 424
- 1
- 6
- 19

Jules
- 185
- 1
- 16
1 Answers
6
You can do it overriding createListQueryBuilder
or createSearchQueryBuilder
as mentioned here.
Example:
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;
}

circulosmeos
- 424
- 1
- 6
- 19

jerkan
- 685
- 2
- 10
- 28
-
Thanks for this answer. The only change I made was to enclose the `$queryBuilder->addOrderBy()` statements in an `if ...` to avoid exceptions on entities without the given entity properties. The use case was sorting on lastname, firstname, which only occur in the User entity. – geoB Dec 06 '19 at 23:18