J'ai 3 modèles

Event - table ('events') Shift - table ('shift') Temps de travail - table ('workingtimes')

Et je peux appeler event->shifts->workedtimes tout va bien là-bas

Et maintenant, je veux faire une requête pour obtenir tous les événements où l'utilisateur (Auth) a travaillé

Quelque chose comme ça:

Event::with('workedtimes')->where('workedtimes.uid', Auth::user()->id)->get();

Mais ça ne marche pas. Veuillez aider.

3
lewis4u 17 janv. 2017 à 15:36

2 réponses

Meilleure réponse

Pour obtenir tous les événements où l'utilisateur authentifié a travaillé, vous devez utiliser {{X0 }} méthode:

$events = Event::whereHas('workedtimes', function($q) {
    $q->where('uid', auth()->user()->id);
})->get();
2
Alexey Mezenin 17 janv. 2017 à 12:44

Vous cherchez peut-être Contrainte de chargement impatient. Requete:

   Event::with(['workedtimes' => function ($query) {
        $query->where('uid', Auth::user()->id );
    }])->get();
0
Sanzeeb Aryal 17 janv. 2017 à 12:40