ordenando por la función de campo mysql en doctrina 2
doctrine 2 no admite de forma nativa la función de campo mysql fuera del cuadro. Para utilizarlo, puede aprovechar las funciones de cadena personalizadas proporcionadas por Extensions.
DoctrineExtensions Solución:
La biblioteca DoctrineExtensions incluye una función de cadena personalizada llamada 'campo' que emula la función del campo MySQL. Para implementar esto, agregue la siguiente configuración:
$doctrineConfig = $this->em->getConfiguration();
$doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');
use:
La función de campo se puede usar en Select, dónde y entre cláusulas. Si bien no puede usarse directamente en orden por una solución implica agregar un campo adicional en la cláusula de selección y ordenar por ese campo en su lugar:
$qb
->select("r, field(r.id, " . implode(", ", $ids) . ") as HIDDEN field")
->from("Entities\Round", "r")
->where($qb->expr()->in("r.id", $ids))
->orderBy("field");
especificando oculto en la cláusula SELECT, puede evitar que el campo adicional aparezca en la fila de resultados. Esto le permite ordenar los valores de manera eficiente dentro de la expresión en Doctrine 2.2.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3