Ich habe eine Suchmethode, die mehrere Modelle durchsucht. Der Einfachheit halber habe ich zwei Modelle hinzugefügt, nach denen ich suche.Wie mehrere Modelle in Laravel paginieren
Ich möchte die beiden Modelle kombinieren, um ihre Ergebnisse zu paginieren.
Hier ist, was ich gerade mache.
public function search(Request $request)
{
$query = $request->get('q');
$threads = Thread::where('title', 'LIKE', "%{$query}%")->get();
$posts = Post::where('body', 'LIKE', "%{$query}%")->get();
$results = array_merge($threads->toArray(), $posts->toArray());
$results = new Paginator($results, 10);
return view('pages.search', compact('query', 'results'));
}
Das funktioniert, aber ich fühle mich wie das ist wirklich ineffizient und könnte verbessert werden. Gibt es einen besseren Weg, dies zu tun?
Es gibt einen Fehler im Code. Es sollte slice (($ currentPage-1) * $ perPage) sein. Sonst werden Sie nie die ersten Ergebnisse erhalten. –