Fan*_*Fan 9 php paginate laravel laravel-5
正如tittle所说,这是我的控制器
$book = Data::where('userId','1')->paginate(3);
return response()->json($book);
Run Code Online (Sandbox Code Playgroud)
并获取这样的json数据:
data:[{id: 1, userId: 1, vendorId: 1, name: "Alfreda Berge PhD", phone: "1-850-813-5950 x96169",…},…]
from:1
last_page:2
next_page_url: "http:/localhost/XX/public/user/book/list/1?page=2"
perpage:4
prev_page_url:null
to:4
total:5
// if I want to add a new column and value here ,what should I do?
Run Code Online (Sandbox Code Playgroud)
我试着这样做:
$book = Data::where('userId','1')->paginate(3);
$book->printWord = 'Hellow!';
return response()->json($book);
Run Code Online (Sandbox Code Playgroud)
但是,它似乎将删除列printWord.任何的想法?
Ale*_*nin 29
您可以手动创建包含自定义数据的集合并使用merge()帮助程序:
$book = Data::where('userId','1')->paginate(3);
$custom = collect(['my_data' => 'My custom data here']);
$data = $custom->merge($book);
return response()->json($data);
Run Code Online (Sandbox Code Playgroud)
刚检查过,它运作得很好.
小智 5
如果您“手动”使用Illuminate\Pagination\LengthAwarePaginator类,则可以选择扩展它并覆盖该toArray方法:
return new class(
$collection,
$count,
$limit,
$page,
// https://github.com/laravel/framework/blob/6.x/src/Illuminate/Pagination/LengthAwarePaginator.php#L40
// values here will become properties of the object
[
'seed' => $seed
]
) extends LengthAwarePaginator {
public function toArray()
{
$data = parent::toArray();
// place whatever you want to send here
$data['seed'] = $this->seed;
return $data;
}
};
Run Code Online (Sandbox Code Playgroud)
结果
current_page 1
data []
first_page_url "/finder?max_miles=100&zip_code=10001&seed=0.2&page=1"
from null
last_page 1
last_page_url "/finder?max_miles=100&zip_code=10001&seed=0.2&page=1"
next_page_url null
path "/finder"
per_page 20
prev_page_url null
to null
total 0
seed 0.2 // <-- our custom prop
Run Code Online (Sandbox Code Playgroud)
实例化LengthAwarePaginator自己需要一些额外的工作,但它可以完成工作。
| 归档时间: |
|
| 查看次数: |
8372 次 |
| 最近记录: |