Wenn man im Template eine Doctrine Collection sortieren will nach einem Zeitstempel (createdAt in dem Beispiel), sollte man dies eigentlich vorher machen.
Wenn dies nicht möglich ist, z.B. im Sonata Admin Bundle, dann kann man diese Twig Extension verwenden:
{% foo| sortByCreatedAt('asc') %}
Twig Extension Code:
<?php namespace App\Twig; use App\Entity\Tag; use Doctrine\ORM\PersistentCollection; use Twig\Extension\AbstractExtension; use Twig\TwigFilter; class AppExtension extends AbstractExtension { public function getFilters() { return array( new TwigFilter('sortByCreatedAt', array($this, 'sortByCreatedAt')), ); } /** * @param PersistentCollection $objects * @return mixed */ public function sortByCreatedAt($objects, $direction = 'asc') { $objects = $objects->toArray(); usort($objects, function ($a, $b) use($direction) { if ($direction === 'asc') { return $a->getCreatedAt() > $b->getCreatedAt(); } elseif ($direction === 'desc') { return $a->getCreatedAt() < $b->getCreatedAt(); } else { throw new \Exception('unknown sort direction'); } }); return $objects; } }