Jeremy Hicks, bedankt voor je extensie .Ik wist niet hoe ik je functie aan de leer moest koppelen, maar eindelijk vind ik het antwoord.
$doctrineConfig = $this->em->getConfiguration();
$doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');
Ik heb FIELD nodig functie om mijn entiteiten te bestellen die ik selecteer door IN uitdrukking. Maar u kunt deze functie alleen gebruiken in SELECT, WHERE, BETWEEN clausule, niet in ORDER BY .
Oplossing:
$qb
->select("r, field(r.id, " . implode(", ", $ids) . ") as HIDDEN field")
->from("Entities\Round", "r")
->where($qb->expr()->in("r.id", $ids))
->orderBy("field");
Om te voorkomen dat field wordt toegevoegd alias in uw resultatenrij moet u HIDDEN . plaatsen trefwoord. Dus zo kun je waarden bestellen in IN uitdrukking in Leer 2.2.