バージョン
Laravel5.4
問題
query を使用してオブジェクトを取得しようとするとページネーションが機能しない問題が発生します。
Post::search($request->input('keyword'))->query(function ($query) {
$query->filter();
})
->paginate(50);
解決方法
初めに全文検索のみ行い、一致したレコードのIDリストを返します。
$ids = Post::search($request->input('keyword'))->keys()->toArray();
Post::whereIn('id', $ids)->filter()->paginate(50);