2016-05-12 1 views
1

Ich möchte alle meine Artikel paginieren. 15 davon pro Seite. Hier ist der Aufruf Paginieren: Article::orderBy('created_at', 'desc')->paginate(15)Laravel Eloquent doppelte Abfrage

Die Paginierung funktioniert gut, aber das Problem ist, dass auf jedem Artikel Laravel eine Abfrage auf meiner Benutzer-Tabelle macht. 15 Artikel pro Seite, 15 doppelte Abfragen an meine Benutzer-Tabelle. Hier ist das Bild von debugbar: image source

Wie kann ich die Paginierung optimieren und alle diese doppelte Abfragen löschen?

+0

Welche Beziehung verwenden Sie zwischen User und Artikel Modelle? –

+0

Im Benutzermodell habe ich 'public function articles() { Rückgabe $ this-> hasMany (Artikel :: Klasse); } 'und in Artikeln habe ich' public function user() { zurückgeben $ this-> belongTo (User :: class); } '. – ealocin

Antwort

0

Sie verwenden eine Eins-zu-viele-Beziehung zwischen diesen Modellen, so dieses Problem zu lösen (die N+1 query problem genannt wird), verwenden eager loading

Article::orderBy('created_at', 'desc')->with('user')->paginate(15)