2DAW-CarlosIII / 2DAW-CarlosIII/marcapersonalfp24_25
Aplicar filtro por ids
- Dominant language
- PHP
- Stars
- 0
- Forks
- 23
- PR merge metrics
- No merged PRs in 30d
Description
## Filtrar por id
En muchos de los listados que se pueden realizar con _React-admin_, se utiliza el componente `ReferenceField`, el cual busca registros relacionados en otra tabla. Por ejemplo, el siguiente `ReferenceField` es el que se utilizará para mostrar el nombre de la `familia_profesional` asociada a un `ciclo`:
```jsx
```
Con el componente anterior, conseguimos que se vea el nombre de la `familia_profesional` asociado a cada `ciclo`, como se muestra a continuación:
ID | Cod Ciclo | Cod Familia | Familia Profesional | Grado | Nombre
-|-|-|-|-|-
1 | ACEC2 | ADG | **ACTIVIDADES FÍSICAS Y DEPORTIVAS** | G.M. | Técnico en Actividades Ecuestres |
2 | ACFI3 | ADG | **ACTIVIDADES FÍSICAS Y DEPORTIVAS** | G.S. | Técnico Superior en Acondicionamiento Físico |
3 | ACID1 | ADG | **ACTIVIDADES FÍSICAS Y DEPORTIVAS** | BÁSICA | Profesional Básico en Acceso y Conservación en Instalaciones Deportivas |
4 | EASO3 | ADG | **ACTIVIDADES FÍSICAS Y DEPORTIVAS** | G.S. | Técnico Superior en Enseñanza y Animación Sociodeportiva |
5 | GMTL2 | ADG | **ACTIVIDADES FÍSICAS Y DEPORTIVAS** | G.M. | Técnico en Guía en el Medio Natural y de Tiempo Libre |
6 | ADFI3 | AFD | **ADMINISTRACIÓN Y GESTIÓN** | G.S. | Técnico Superior en Administración y Finanzas |
7 | ASDI3 | AFD | **ADMINISTRACIÓN Y GESTIÓN** | G.S. | Técnico Superior en Asistencia a la Dirección |
8 | GADM2 | AFD | **ADMINISTRACIÓN Y GESTIÓN** | G.M. | Técnico en Gestión Administrativa |
9 | INOF1 | AFD | **ADMINISTRACIÓN Y GESTIÓN** | BÁSICA | Profesional Básico en Informática de Oficina |
10 | SEAD1 | AFD | **ADMINISTRACIÓN Y GESTIÓN** | BÁSICA | Profesional Básico en Servicios Administrativos
Para obtener las `familias_profesionales` asociadas a los `ciclos` mostrados en un listado, _React-admin_ realiza una petición a la _API_ con la siguiente forma:
```
Request URL: http://marcapersonalfp.test/api/v1/familias_profesionales?id[]=1&id[]=2
Request Method: GET
```
Como actualmente los filtros que aplicamos no tienen en cuenta los `id` enviados en la _query_, la _API_ devuelve todos los registros de la tabla `familias_profesionales`, lo que significa que, aunque se soliciten 2, se devuelven las 26 `familias_profesionales` almacenadas en la base de datos.
**Debemos modificar el _middlware_ que aplica los filtros para que, en el caso de que se esté enviando una petición como la anterior, se aplique un filtro por `id` en la consulta y se devuelvan únicamente los registros solicitados**:
```json
[
{
"id": 1,
"codigo": "ADG",
"nombre": "**ACTIVIDADES FÍSICAS Y DEPORTIVAS**",
"created_at": null,
"updated_at": null
},
{
"id": 2,
"codigo": "AFD",
"nombre": "**ADMINISTRACIÓN Y GESTIÓN**",
"created_at": null,
"updated_at": null
},
{
"id": 3,
"codigo": "AGA",
"nombre": "AGRARIA",
"created_at": null,
"updated_at": null
},
{
"id": 4,
"codigo": "ARA",
"nombre": "ARTES Y ARTESANÍAS",
"created_at": null,
"updated_at": null
},
{
"id": 5,
"codigo": "ARG",
"nombre": "ARTES GRÁFICAS",
"created_at": null,
"updated_at": null
}
]
```
> Nota: cuando se envía un array de `id` en la query no se envían otros tipos de filtros, por lo que, en ese caso, no es necesario aplicarlos.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.