Laravel 6

Eloquent : clé étrangère non visible en retour JSON ?

Avatar de Renaud404
Renaud404

Bonjour,

J'ai un problème étrange et je sèche un peu.

J'ai un modèle Reservation qui a une clé étrangère sur la table users de Laravel, tout fonctionne bien dans blade car j'ai mis dans mon modèle Reservation :

public function user()
    {
        return $this->belongsTo(User::class, 'user_id');
    }

Après requète suivante dans Eloquent : $reservations = Reservation::withTrashed()->where('date_event_id', $idevent)->get();

Dans ma vue blade j'accède bien aux infos du user, par exemple $reservation->user->name affiche bien le nom.

Par contre lorsque je fais un appel à la même fonction du même contrôleur, et que je veux un retour en JSON, ou juste que dans le controleur je demande un return $reservations sans envoyer la collection dans la vue, je ne vois pas les infos liés aux clés étrangère, est-ce normal ? Si oui comment accéder aux infos de clés étrangère lors d'un appel JSON ? (sans faire les laisons manuellement avec le query builder, ce que je fais actuellement mais je pense qu'il y a plus 'propre' avec eloquent)

Merci pour votre aide

Posté il y a 6 mois
Avatar de bestmomo
bestmomo

Salut,

Fais plutôt comme ça :

$reservations = Reservation::with('user')->withTrashed()->where('date_event_id', $idevent)->get();
Posté il y a 6 mois
Avatar de Renaud404
Renaud404

ça marche super merci !

par contre ça veut dire que blade fait ça tout seul quand j'ai bien les infos sans les demander ?

Posté il y a 6 mois
Avatar de bestmomo
bestmomo

Blender se contente d'utiliser les informations mais là on chargé déjà l'utilisateur associé dans la requête à la base, ça évire de relancer une autre requête.

Posté il y a 6 mois

Vous ne pouvez pas répondre à ce sujet.