Jeremy Hicks, vielen Dank für Ihre Erweiterung .Ich wusste nicht, wie ich deine Funktion mit der Lehre verbinden soll, aber endlich finde ich eine Antwort.
$doctrineConfig = $this->em->getConfiguration();
$doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');
Ich brauche FIELD Funktion zum Ordnen meiner Entitäten, die ich per IN auswähle Ausdruck. Aber Sie können diese Funktion nur in SELECT, WHERE, BETWEEN verwenden -Klausel, nicht in ORDER BY .
Lösung:
$qb
->select("r, field(r.id, " . implode(", ", $ids) . ") as HIDDEN field")
->from("Entities\Round", "r")
->where($qb->expr()->in("r.id", $ids))
->orderBy("field");
Um das Hinzufügen von field zu vermeiden alias in Ihre Ergebniszeile müssen Sie HIDDEN einfügen Stichwort. So können Sie Werte in IN bestellen Ausdruck in Lehre 2.2.