Jeremy Hicks, tack för ditt tillägg .Jag visste inte hur jag skulle koppla din funktion till doktrin, men till slut hittar jag svar.
$doctrineConfig = $this->em->getConfiguration();
$doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');
Jag behöver FIELD
funktion för att beställa mina Entiteter som jag väljer med IN
uttryck. Men du kan bara använda den här funktionen i SELECT, WHERE, BETWEEN
sats, inte 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");
För att undvika att lägga till field
alias i din resultatrad måste du sätta HIDDEN
nyckelord. Så här kan man beställa värden i IN
uttryck i Doktrin 2.2.