Birden çok modeli arayan bir arama yöntemim var. Basitlik için aradığım iki model ekledim.Laravel'de Birden Fazla Model Nasıl Salgılanır
İki modeli birleştirerek sonuçlarını paginate etmek istiyorum.
İşte şu anda yapıyorum.
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'));
}
Bu işler, ancak bunun gerçekten verimsiz olduğunu ve geliştirilebileceğini hissediyorum. Bunu yapmanın daha iyi bir yolu var mı?
Kodda bir hata var. Dilim olmalıdır (($ currentPage-1) * $ perPage). Aksi halde ilk sonuçları asla alamazsınız. –