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.