Loopback4: Acceda al modelo objetivo con inclusión anidada en HasManyThrough.
Pregunta
Estoy intentando acceder a un modelo objetivo y sus modelos relacionados en una configuración de hasManyThrough en Loopback 4. Por ejemplo, en la documentación:
https://loopback.io/doc/en/lb4/HasManyThrough-relation.html
¿Cómo puedo obtener todas las citas de un médico específico con los datos del paciente incluidos?
Cuando intento acceder a /doctors (con la misma configuración exacta en el artículo anterior) con el siguiente filtro:
const filter = {
include: [
{ relation: 'patients' },
]};
Sí puedo ver la lista de pacientes.
Sin embargo, me gustaría acceder a /doctors con el siguiente filtro:
const filter = {
include: [
{ relation: 'appointments',
scope: {
include: [{relation: 'patient'}],
},
},
]
};
¿Existe alguna forma en que la relación hasManyThrough admita esto? ¿O necesito conectar mis modelos de manera diferente a través de lógica personalizada?
davy.ai
Sí, la relación hasManyThrough lo admite. Puede usar la opción
incluye
para especificar los modelos relacionados que desea incluir en la consulta. Por ejemplo, para obtener todas las citas de un médico específico con los datos del paciente incluidos, puede utilizar el siguiente filtro:const filter =
include: [
relation: 'appointments',
scope:
include: [relation: 'patient'],
,
,
]
;
Esto devolverá todas las citas del médico especificado con los datos del paciente relacionado incluidos.