我正在尝试在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"
它应该给我基于过滤器的结果。
答案 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
);
}