Ho un metodo di ricerca che ricerca più modelli. Per semplicità ho aggiunto due modelli che sto cercando.Come impaginare più modelli in Laravel
Vorrei unire i due modelli per impaginare i risultati.
Ecco cosa sto facendo attualmente.
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'));
}
Questo funziona, ma ritengo che questo sia davvero inefficiente e potrebbe essere migliorato. C'è un modo migliore per farlo?
C'è un bug nel codice. Dovrebbe essere slice (($ currentPage-1) * $ perPage). Altrimenti non otterrai mai i primi risultati. –