我和Laravel 4的Pagination课一起使用Eloquent。
问题:当网址中有一些GET参数时,例如:http://site.com/users?gender=female&body=hot
,生成的分页链接只包含page
参数,而不包含任何内容。
刀片模板
{{ $users->link() }}
这有一个->append()
函数,但是当我们不知道有多少GET参数时,我们如何使用append()
在分页链接中包含其他GET参数而不用一大堆if
代码弄乱了我们的刀片模板?
答案 0 :(得分:102)
->appends()
可以接受数组作为参数,您可以传递Input::except('page')
,这应该可以解决问题。
示例:
return view('manage/users', [
'users' => $users->appends(Input::except('page'))
]);
答案 1 :(得分:63)
我认为你应该在Laracasts提到的Laravel 5中使用这个代码。
此外,这不仅适用于参数page
,还适用于任何其他参数:
$users->appends(request()->input())->links();
就个人而言,我尽量避免使用Facades
。使用全局辅助函数代码更少,更优雅。
答案 2 :(得分:38)
请注意<{1}} ,它会在您打开的每个页面中反复包含以前的Input::all()
值!
例如,如果您在?page=
并打开下一页,则会打开?page=1
所以最后一个值页面将是您看到的页面!不是你想看到的页面
解决方案:使用?page=1&page=2
答案 3 :(得分:26)
不是append()
而是appends()
所以,正确答案是:
{!! $records->appends(Input::except('page'))->links() !!}
答案 4 :(得分:16)
您可以使用
->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() }}
答案 5 :(得分:11)
LARAVEL 5
视图必须包含以下内容:
{!! $myItems->appends(Input::except('page'))->render() !!}
答案 6 :(得分:6)
Laravel 7.x向分页器添加了新方法:
->withQueryString()
所以您可以像这样使用它:
{{ $users->withQueryString()->links() }}
对于低于7.x的laravel,请使用:
{{ $users->appends(request()->query())->links() }}
答案 7 :(得分:5)
使用此结构,保留所有输入参数但页面
{!! $myItems->appends(Request::capture()->except('page'))->render() !!}
为什么?
1)你删除了那些添加到请求中的所有内容
$request->request->add(['variable' => 123]);
2)您不需要$ request作为函数的输入参数
3)你排除了“页面”
PS),它适用于Laravel 5.1
答案 8 :(得分:3)
在您的视图中包含此内容 页
$users->appends(Input::except('page'))
答案 9 :(得分:1)
laravel 5.3中的谁 在刀片中:
{{ $table->appends(['id' => $something ])->links() }}
您可以通过以下方式获取通过的项目
$passed_item=$request->id;
使用
进行测试dd($passed_item);
您必须获得$ something的价值
答案 10 :(得分:0)
也传递页码以进行分页。像这样的事情
$currentPg = Input::get('page') ? Input::get('page') : '1';
$boards = Cache::remember('boards'.$currentPg, 60, function(){ return WhatEverModel::paginate(15); });
答案 11 :(得分:0)
在Laravel 7.x中,您可以像这样使用它:
{{ $results->withQueryString()->links() }}