代码之家  ›  专栏  ›  技术社区  ›  Nilay Singh

Laravel编辑用于筛选的下一个和上一个URL的分页

  •  0
  • Nilay Singh  · 技术社区  · 6 年前

    我试图在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"
    

    但是我需要基于key和groupname的过滤,例如当我传递一个param groupname和key时,它应该给我值。

    当我试图获取下一页的URL时,它不起作用。我希望根据我的筛选结果进行分页,它应该给我下一页的URL,如下所示:

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

    它应该根据我的过滤器给出结果。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Jignesh Joisar    6 年前

    习惯于 appends() 此处为分页方法

    附加到分页链接

    您可以使用 附加方法。例如,将sort=votes附加到每个分页 链接,您应该对appends进行以下调用:

    $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
        );
    }