7

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 ?

circulosmeos
  • 424
  • 1
  • 6
  • 19
Jules
  • 185
  • 1
  • 16

1 Answers1

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