Laravel编辑分页的下一个和上一个URL以进行过滤

时间:2019-01-07 10:18:34

标签: php laravel pagination

我正在尝试在laravel中创建无限滚动,因为我正在使用默认分页,并且工作正常,但我希望分页使用过滤。

public function infinite_scroll(Request $request)
{
    $key = $request->input('key');
    $group_name = $request->input('groupname');
    $wachat = Wechat::where('key', '=', $key)->where('groupName', '=', $group_name)->orderBy('id', 'DESC')->paginate(2);
    $this->response['values'] = $wachat;
    $this->response['key'] = $key;
    return response()->json(
        $this->response
    );
}

我正在使用此代码,它在下一个URL中给了这个URL:

next_page_url: "http://localhost:8888/kc/kyo-webservice/public/api/v1/wechatinfinite?page=2"

但是我想基于键和组名进行过滤,例如,当我传递参数组名和键时,它应该为我提供值。

当我尝试获取下一页URL时,它不起作用,我希望基于我的过滤器进行分页的结果应该给我下一页URL,如下所示:

next_page_url: "http://localhost:8888/kc/kyo-webservice/public/api/v1/wechatinfinite??key=smg1np1f77&groupname=group&page=2"

它应该给我基于过滤器的结果。

1 个答案:

答案 0 :(得分:1)

在这里使用了appends()分页方法

附加到分页链接

  

您可以使用附加到分页链接的查询字符串   追加方法。例如,将sort = votes附加到每个分页   链接,则应对附录进行以下调用:

$wachat->appends(['key'=> $key,'groupname' => $group_name]);

在您的控制器中这样做

public function infinite_scroll(Request $request)
{
    $key = $request->input('key');
    $group_name = $request->input('groupname');
    $wachat = Wechat::where('key', '=', $key)->where('groupName', '=', $group_name)->orderBy('id', 'DESC')->paginate(2);
    $wachat->appends(['key'=> $key,'groupname' => $group_name]);
    $this->response['values'] = $wachat;
    $this->response['key'] = $key;
    return response()->json(
        $this->response
    );
}