为数据分页后最外层数据结构不允许更改搞出来的花活儿
$list = $model->newFromBuilder(['custom_builder' => new CustomQueryBuilder($model->getQuery(),$model)])
->getAttribute('custom_builder')
?->appendPageData(['custom_field' => $noReadCount])
->orderBy('created_time','DESC')
->paginate($request->get('per_page'));
重写Illuminate\Database\Query\Builder中的paginate方法
重写Illuminate\Database\Concerns\BuildsQueries复用类中paginator方法
重写Illuminate\Pagination\LengthAwarePaginator 重写toArray方法
{
"code": 200,
"data": {
"current_page": 1,
"data": []
}
"first_page_url": "****",
"from": 1,
"last_page": 9,
"last_page_url": "***",
"links": [
{
"url": null,
"label": "« 上一页",
"active": false
},
{
"url": "****,
"label": "1",
"active": true
},
{
"url": "****",
"label": "下一页 »",
"active": false
}
],
"next_page_url": "***",
"path": "****",
"per_page": "1",
"prev_page_url": null,
"to": 9,
"total": 9,
"custom_field": 3
}
实际—-
直接toArray()变成数组追加🤣