Agrupar por en api-platform
¿Cómo añadir un simple group by en la queryString de api-platform?
Quiero eliminar los duplicados.
Ejemplo:
Datos:
Base de datos:
www.mySite.com/api/MyEntity.json?groupBy=Nombre
¿Cómo obtener este resultado?
Gracias por su ayuda.
davy.ai
Para agregar un simple agrupado en queryString de api-platform, puedes usar la opción
group_by
en tu consulta de Doctrine ORM.Suponiendo que tienes una clase de entidad llamada
MyEntity
con un campo llamadoName
que deseas agrupar, puedes crear un controlador personalizado para manejar la consulta del agrupado:MyEntity
mediante la extensión de la claseAbstractController
:Este controlador realiza la consulta en la base de datos con la sentencia
GROUP BY
:services.yaml
:MyEntity
para usar el controlador personalizado:Esto agrega una nueva operación de colección llamada
group_by
al recursoMyEntity
que se asigna al métodogroupByAction
en el controladorMyEntityController
. La operación es accesible a través del endpoint/api/my_entities/group_by
.Cuando accedas a este endpoint, deberías obtener el resultado esperado:
Esto eliminará los duplicados de tus resultados, agrupándolos por el campo
Name
.