Jeremy Hicks, tak for din udvidelse .Jeg vidste ikke, hvordan jeg skulle forbinde din funktion med doktrin, men endelig finder jeg svar.
$doctrineConfig = $this->em->getConfiguration();
$doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');
Jeg har brug for FIELD
funktion for at bestille mine enheder, som jeg vælger ved IN
udtryk. Men du kan kun bruge denne funktion i SELECT, WHERE, BETWEEN
klausul, ikke i ORDER BY
.
Løsning:
$qb
->select("r, field(r.id, " . implode(", ", $ids) . ") as HIDDEN field")
->from("Entities\Round", "r")
->where($qb->expr()->in("r.id", $ids))
->orderBy("field");
For at undgå at tilføje field
alias i din resultatrække skal du sætte HIDDEN
søgeord. Så dette er hvordan man kan bestille værdier i IN
udtryk i Lære 2.2.