在Laravel Lumen API项目中,我给出了分页结果。
....
"next_page_url" is "http://example.com/something?pg=2"
....
如何将所有包含在请求的URL中的参数添加到所有链接?
样本: http://example.com/something?pg=1&color=red&limit=2
next_page_url然后应如下所示: http://example.com/something?pg=2&color=red&limit=2
$queryStrings = Input::except('limit', 'order_by', 'order', 'page', 'count', 'current_page', 'last_page', 'next_page_url', 'per_page', 'previous_page_url', 'total', 'url', 'from', 'to', 'pg');
$limit = (Input::get('limit') ? Input::get('limit') : '10');
$order_by = (Input::get('order') ? Input::get('order') : 'id');
$order = (Input::get('order_by') ? Input::get('order_by') : 'asc');
$page = (Input::get('pg') ? Input::get('pg') : 1);
$query = DB::table('cars');
foreach ($queryStrings as $key => $value) {
$query->where($key, '=', $value);
}
$query->select('id', 'car', 'color', 'active');
$query->orderBy($order_by, $order);
$paginated = $query->paginate($limit, ['*'], 'pg', $page);
return response()->json($paginated,200);
感谢帮助。
答案 0 :(得分:2)
您可以使用appends()
方法返回的LengthAwarePaginator
提供的paginate()
方法。因此,您只需添加以下行:
$paginated = $query->paginate($limit, ['*'], 'pg', $page);
$paginated->appends(Input::all());
return response()->json($paginated,200);
这将获取所有传递的输入值,并将它们附加到分页器生成的链接中。 appends()
方法会对调用它的实例进行突变,这就是为什么您只需要对从paginate()
获得的结果进行调用。