Jeremy Hicks, gracias por su extensión .No sabía cómo conectar tu función a la doctrina, pero finalmente encontré la respuesta.
$doctrineConfig = $this->em->getConfiguration();
$doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');
Necesito FIELD
función para ordenar mis Entidades que selecciono por IN
expresión. Pero puede usar esta función solo en SELECT, WHERE, BETWEEN
cláusula, no en ORDER BY
.
Solución:
$qb
->select("r, field(r.id, " . implode(", ", $ids) . ") as HIDDEN field")
->from("Entities\Round", "r")
->where($qb->expr()->in("r.id", $ids))
->orderBy("field");
Para evitar agregar field
alias en su fila de resultados necesita poner HIDDEN
palabra clave. Así es como poder ordenar valores en IN
expresión en Doctrine 2.2.