angular - 如何让 Laravel 5.8 分页与 Angular 8 一起工作
问题描述
使用 laravel 分页从数据库中获取下一组结果时遇到问题。我的结果从这条路线看起来像这样:api/getMerchants
{
"merchants": {
"current_page": 1,
"data": [], // contains some data
"first_page_url": "/?page=1",
"from": null,
"next_page_url": "/?page=2",
"path": "/",
"per_page": 15,
"prev_page_url": null,
"to": null
}
}
现在,当我尝试通过调用 api/getMerchants 路由并将下一页 url 值附加到它来获取下一组结果时,我得到了相同的结果集,但这次只有 current_page 值更改为 2 和 next_page_url更改为 3。最终的 url 如下所示:
api/getMerchants/?page=2
我究竟做错了什么 ?我如何获得下一组结果,当我尝试使用邮递员时,我也会得到同样的结果。
这是我的控制器:
public function getMerchants(Request $request){
//get all registered companies
$getmerchants = DB::table('merchants')
->join('joint_companies', 'joint_companies.id', '=', 'super_id')
->join('company_admin', 'company_admin.id', '=', 'admin_id')
->select('merchants.*','company_admin.name AS admin_name','joint_companies.name AS exec_name')
->get();
//clean data
$merchantsdata = [];
$merchants = $getmerchants->map(function($items){
$merchantsdata['id'] = $items->id;
$merchantsdata['merchant_name'] = Crypt::decryptString($items->merchant_name);
$merchantsdata['status'] = $items->status;
$merchantsdata['country'] = $items->country;
$merchantsdata['logo'] = $items->logo;
return $merchantsdata;
});
$objects = new Paginator($merchants, 15);
$response = [
'merchants' => $objects
];
return response()->json($response, 200);
}
解决方案
我遇到了同样的错误。要解决这个问题,您需要通知您的数据库表中有多少项目?如果 item 为 2 并且您的 per_page 值为 5 那么您只能获得一页数据。现在,如果您使用 page = 2(对于第二页)点击请求,那么您如何获取第二页数据。自然它会显示你的空数据。你的查询已经显示出来了。
推荐阅读
- python - mysql-connector-python 不适用于 VS Code 并在 python shell 中工作
- php - 为 MySQL 和 SQLite 创建唯一不区分大小写的列
- scala - 构建 Scala 库并在数据块中使用它们
- node.js - 在推送器中调用触发方法时引发错误,“预期字符串”
- firebase - Flutter Firebase document.id 更新问题
- python - 检查数组中的2个或多个项目是否相同并根据排序号删除其中一项 - Python
- python - 如何在 python 中计算股票/加密货币的收盘价和高低差?
- rxjs - RxJs channing、设置和读取外部值
- c# - 如何使用 c#/cmd 向 msi 文件的属性表添加新行
- html - 使用多个模式关闭 Blazor 模式