如果我去http://app.test/visitor?interval=week,我会看到此
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLmltZ3VyLmNvbS9lSTZ4RkoyLnBuZyJ9” alt =“”>
单击第二个按钮后,我便被重定向到:http://app.test/visitor?page=2
它删除了我的interval=week
,从而破坏了我的每周视图查询视图。
这是我构建页面的方式
public function index()
{
$inputs = Request::all();
$interval = '';
if(array_key_exists('interval', $inputs)){
$interval = $inputs['interval'];
}
switch ($interval) {
case 'day':
$visitors = Visitor::where('created_at', '>', now()->today())->paginate(10);;
break;
case 'week':
$visitors = Visitor::where('created_at', '>', now()->subMonth())->paginate(10);;
break;
case 'month':
$visitors = Visitor::where('created_at', '>', now()->subMonth())->paginate(10);;
break;
case 'year':
$visitors = Visitor::where('created_at', '>', now()->subYear())->paginate(10);
break;
default:
$visitors = Visitor::orderBy('updated_at', 'desc')->paginate(10);
break;
}
return View::make('layouts.be.visitors.index', get_defined_vars());
}
{!! $visitors->render() !!}
是为了保持相同的视图,像这样
http://app.test/visitor?interval=week&page=2
我是否必须覆盖默认的分页功能?
我该如何解决此问题?
我想我找到了答案。我更新了视图
{!! $ visitors-> render()!!}
到
{!! $ visitors-> appends(Request :: except('page'))-> render()!!}
它不再替换我当前的URL参数。
您的解决方案有效,但是在Laravel 7中有内置的方法可以实现所需的结果。
{{ $visitors->withQueryString()->links() }}
您可以在所附的PR中看到您要解决的确切问题:https://github.com/laravel/framework/pull/31648
FYI,links()
替换了Laravel 5.3中的render()