Answers:
编辑:康纳的评论与梅赫迪的答案是使这项工作所必需的。感谢双方的澄清。
->appends()
可以接受数组作为参数,可以传递Input::except('page')
,这可以解决问题。
例:
return view('manage/users', [
'users' => $users->appends(Input::except('page'))
]);
$query->appends(Input::except('page'))->links();
效果更好。否则,单击页面时页面变量不会更新。Laravel 4.1.24。
{!! $myItems->appends(Input::except('page'))->render() !!}
我认为您应该在Laravel 5中使用此代码。这不仅适用于参数,page
而且适用于任何其他参数:
$users->appends(request()->input())->links();
就个人而言,我尽量避免使用Facades
太多。使用全局帮助器函数的代码更少,更优雅。
更新:
请勿使用Input
Facade,因为Laravel v6 +已弃用
except('page')
与此解决方案一起使用。
要注意的Input::all()
,这将包括以前?page=
在每次打开页面连连值!
例如,如果您进入?page=1
并打开下一页,则它将打开,?page=1&page=2
因此最后一个值页面将是您看到的页面!不是您要查看的页面
解决方案:使用 Input::except(array('page'))
你可以用
->appends(request()->query())
控制器中的示例:
$users = User::search()->order()->with('type:id,name')
->paginate(30)
->appends(request()->query());
return view('users.index', compact('users'));
视图中的示例:
{{ $users->appends(request()->query())->links() }}
使用此构造,保留除页面之外的所有输入参数
{!! $myItems->appends(Request::capture()->except('page'))->render() !!}
为什么?
1)您像这样剥离所有添加到请求的内容
$request->request->add(['variable' => 123]);
2)您不需要$ request作为函数的输入参数
3)您不包含“页面”
PS),并且适用于Laravel 5.1
将此包含在您的视图页面中
$users->appends(Input::except('page'))
对于谁在laravel 5或以上刀片中的一个:
{{ $table->appends(['id' => $something ])->links() }}
你可以通过传递的项目
$passed_item=$request->id;
用它测试
dd($passed_item);
您必须获得价值的东西
Laravel 7.x为分页器添加了新方法:
->withQueryString()
因此,您可以像这样使用它:
{{ $users->withQueryString()->links() }}
对于低于7.x的laravel,请使用:
{{ $users->appends(request()->query())->links() }}
同时传递页码以进行分页。像这样的东西
$currentPg = Input::get('page') ? Input::get('page') : '1';
$boards = Cache::remember('boards'.$currentPg, 60, function(){ return WhatEverModel::paginate(15); });
appends
,没有append
。正确的链接应类似于$query->appends($foo)->links();