2016-04-03 1 views
0

J'utilise Laravel 5.2. J'ai 3 tables (modèles):Laravel, requêtes multiples imbriquant avec ordre multiple par

  • Events
  • Dates
  • Sessions

Mes relations: Dates de l'événement hasMany. La date a de nombreuses sessions. Le problème est que lorsque j'obtiens l'événement avec des dates et des sessions, les données ne sont pas commandées.

Comment puis-je obtenir un événement avec des dates commandées et chaque date avec des sessions ordonnées.

$event = Event::find($id); 
$event->load(['dates' => function($query) 
    { 
     $query->orderBy('date', 'asc'); 
    } 
]); 

Voici comment je reçois un événement avec des dates commandées. Comment commander des sessions pour chaque date?

Merci

Répondre

0

Je pense que je l'ai trouvé la réponse. La charge n'a pas fonctionné à l'intérieur de la requête imbriquée. Donc je devrais utiliser 'avec' pas 'charger'.

$event = Event::find($id); 
$event->load(['dates' => function($query) 
      { 
       $query->with(['sessions' => function($query) 
            { 
             $query->orderBy('starts_at', 'asc'); 
            } 
       ])->orderBy('date', 'asc'); 
      } 
    ]);