我有一个搜索按钮和分页系统。他们工作得很好。但是当我搜索某些内容时,页面上有数字分页。点击下一页后。搜索查询不见了。之后所有值都进入第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'));
}
}
我希望我能表达我自己的意思。
显示分页结果的文档中对此进行了解释:
附加到分页链接
您可以使用 appends 方法附加到分页链接的查询字符串。例如,要将 sort=votes 附加到每个分页链接,您应该对 appends 进行以下调用:
{{ $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() }}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句