loopbackio / loopbackio/loopback-next
Empty relation should return empty array
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- TypeScript
- Estrellas
- 5.1k
- Forks
- 1.1k
- Merge medio
- 2 d 21 h
- PR fusionados (30 d)
- 27
Descripción
### Describe the bug
Hi,
I'm migrating a project from loopback 3 to loopback 4 and I found inconsistencies between the two regarding relations.
I am querying a model which have a HasMany relation on another model like this:
```
export class User extends Entity {
...
@hasMany(() => Order)
orders: Order[];
...
}
```
The query looks like this:
`/users?filter={"include": ["orders"]}`
In the answer, I got an `orders` property for `users` that have orders **but** no `orders` property for users that don't. Here is an API response for example:
```
[
...
{
"id": "__",
"email": "admin@example.com",
},
{
"id": "__",
"email": "support@example.com",
"orders": [
{...}
]
},
...
]
```
Is this an intended behavior in loopback 4 ? I find this much harder to deal with undefined property instead of empty array when querying model with relation.
Best regards
### Logs
_No response_
### Additional information
_No response_
### Reproduction
https://codesandbox.io/s/falling-frost-qn03xh?file=/src/models/user.model.ts
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con la reproducción de CodeSandbox enlazada en el issue e inspecciona cómo se representa una relación HasMany incluida en la respuesta de users. Compara users con y sin orders y, después, sigue el procesamiento de includes para determinar la forma esperada de la respuesta. Se considera terminado cuando el comportamiento está definido y cubierto tanto para relaciones con datos como para relaciones vacías.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- api, backend
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 42/100