Ho un post modello che ha una relazione hasMany ('Commenti'). Vorrei recuperare tutti i post con la relazione Commenti, ma solo l'ultimo commento per ogni post. E poiché ci sono migliaia di post con migliaia di commenti ciascuno, un'opzione come questa non è possibile a causa di problemi di prestazioni (ad es. Caricare tutti i commenti per ogni post e quindi fare $ post-> commenti [0] -> valore):Limitazione delle relazioni in Laravel
Post::with('comments' => function($query){
$query->orderBy('created_at','desc')
});
Né posso fare:
Post::with('comments' => function($query){
$query->orderBy('created_at','desc')->limit(1)
});
come questo semplicemente non funziona.
Sono assolutamente sicuro di non essere il solo con questo problema e sono riuscito a trovare alcuni "tentativi di soluzione" ma non un esempio stabile di codice funzionante. Qualcuno può aiutare, per favore?
duplicati di http://stackoverflow.com/questions/24343738/getting-just-the-latest-value-on-a-joined-table -con-eloquenti # 24.350.807. Dai un'occhiata anche a http://softonsofa.com/tweaking-eloquent-relations-how-to-get-latest-related-model/ –
Brillante, ci proverò stasera. Se vuoi puoi postarlo come risposta in modo che io possa contrassegnarlo come la migliore risposta :) –