2017-07-04 1 views
0

J'ai des modèles User et Diares mis en place avec le hasMany et BelongTo relstionship. J'essaie d'extraire des données de la table Diaries associée à un utilisateur particulier. J'ai essayé auth mais cela n'a pas fonctionné pour moi. Comment puis-je y parvenir et l'afficher dans la vue des lames. Voici mon code actuel:Comment puis-je extraire des données en fonction de l'ID utilisateur en utilisant Laravel 5.4

public function index(User $id) 
    { 
     $user = User::find($id); 
    $record = $user->diary; 


     return view('home')->with('record', $record); 

    } 

Le fichier lame devrait afficher à:

@foreach ($record as $diary) 
    {{ $diary->error }} 
     {{ $diary->fix }} 
@endforeach 
+0

qu'est-ce que print_r ($ user) donne? – Exprator

+0

sur php artisan bricoleur ou où dois-je saisir ce – Vanessa

+0

Eh bien, vous pouvez toujours utiliser ** first ** au lieu de ** trouver ** https://laravel.com/docs/5.4/eloquent#retrieving-single-models –

Répondre

1

Dans votre fonction d'index l'$ id est pas entier - c'est une instance de l'utilisateur, de sorte que vous pouvez essayer utiliser ceci:

public function index(User $user) 
{ 
    $record = $user->diary; 

    return view('home')->with('record', $record); 

} 
+0

et dans vos itinéraires, vous devriez changer l'itinéraire de/index/{user} –

+0

merci @Denis Gorgul. Il ne lance aucune erreur mais il n'affiche aucun enregistrement non plus. Je suis confus. OK, je viens de voir le commentaire sur les routes qui changent. – Vanessa

+0

Je reçois une exception HTTP NotFound. Mes routes sont quelque chose comme Route :: get ('/ home {user}', 'HomeController @ index') -> nom ('home'); – Vanessa