我有一个搜索按钮和分页系统。他们工作得很好。但是当我搜索某些内容并且页面被数字分页时。点击下一页后。搜索查询消失了。之后,所有值都进入第2页。未搜索的值。
我的搜索按钮更改网址,如/en/news?q=foo
我的分页正在改变这样的网址(默认顺便说一句)/en/news?page=2
我怎样才能并排添加。或者我该如何解决问题。我打开任何解决方案。
我正在使用搜索范围。
public function scopeSearch($query, $search) {
return $query->where('title', 'LIKE', '%' .$search. '%')
->orWhere('sub_body', 'like', '%' .$search. '%')
->orWhere('body', 'like', '%' .$search. '%');
}
这也是我的控制器:
public function index (Request $request){
$localeCode = LaravelLocalization::getCurrentLocale();
$updates = Update::latest()->take(3)->get();
$query = $request->get('q');
if ($query){
$new = $query ? News::search($query)->orderBy('id', 'desc')->paginate(10):News::all();
return view('frontend.news', compact('localeCode', 'updates', 'new', 'query'));
}
else
{
$new = News::orderBy('id', 'desc')->paginate(10);
return view('frontend.news', compact('localeCode', 'updates', 'new', 'query'));
}
}
我希望我能表达自己的意见。
答案 0 :(得分:4)
{{ $users->appends($_GET)->links() }}
将所有过滤器值附加到一行
答案 1 :(得分:1)
displaying pagination results的文档中对此进行了解释:
附加分页链接
您可以使用appends方法附加到分页链接的查询字符串。例如,要将sort = votes附加到每个分页链接,您应该进行以下调用以追加:
{{ $users->appends(['sort' => 'votes'])->links() }}
我发现你当前的代码很混乱。我想你可以像这样重写它
public function index (Request $request){
$localeCode = LaravelLocalization::getCurrentLocale();
$updates = Update::latest()->take(3)->get();
$query = $request->get('q');
$new = $request->filled('q') ? News::search($query) : News::query();
$new = $new->orderBy('id', 'desc')->paginate(10);
return view('frontend.news', compact('localeCode', 'updates', 'new', 'query'));
}
并且在视图中您必须使用
{{ $new->appends(['q' => $query])->links() }}
答案 2 :(得分:0)
尝试使用{{$ collection->追加(request() - > all()) - > links()}}