Laravel分页链接不包括其他GET参数

我和Laravel 4的分页课一起使用了雄辩。

问题:如果URL中有一些GET参数,例如: http://site.com/users?gender=female&body=hot ://site.com/users?gender=female&body=hot,则生成的分页链接仅包含page参数,不包含其他内容。

刀片模板

 {{ $users->link() }} 

这里有一个->append()函数,但是当我们不知道有多less个GET参数时,我们如何使用append()将其他GET参数包含在分页链接中,而不是整个块代码搞乱了我们的刀片模板?

编辑:康纳的评论与Mehdi的答案是必要的,使这项工作。 感谢他们的澄清。

->appends()可以接受一个数组作为参数,你可以通过Input::except('page') ,这应该做的伎俩。

例:

 return view('manage/users', [ 'users' => $users->appends(Input::except('page')) ]); 

请注意 Input::all() ,它将在您打开的每个页面中一次又一次地包含前一个?page=值!
例如,如果您在?page=1并打开下一页,它将打开?page=1&page=2
所以最后一个值页面将是您看到的页面! 而不是你想看到的页面

解决scheme:使用Input::except(array('page'))

append()appends()所以,正确的答案是:

 {!! $records->appends(Input::except('page'))->links() !!} 

我想你应该使用Laravel提到的Laravel 5中的代码。 这也不仅适用于参数page而且适用于其他任何参数:

 $users->appends(request()->input())->links(); 

我个人尽量避免使用Fecades 。 使用全局帮助函数代码less,优雅。

LARAVEL 5

该视图必须包含以下内容:

{!! $myItems->appends(Input::except('page'))->render() !!}

使用这个结构“

 {!! $myItems->appends(Request::capture()->except('page'))->render() !!} 

为什么?

1)你删除所有添加到请求那样的东西

  $request->request->add(['variable' => 123]); 

2)你不需要$ request作为函数的input参数

3)你不包括“页面”

PS),它适用于Laravel 5.1

传递分页的页码。 有些事情是这样的

 $currentPg = Input::get('page') ? Input::get('page') : '1'; $boards = Cache::remember('boards'.$currentPg, 60, function(){ return WhatEverModel::paginate(15); });