У меня проблема в Laravel Страница коллекции Api.
У меня есть категории, и мне нужно привести все продукты, относящиеся к одной категории
Мой код:
public function show($id)
{
$category = Category::find($id);
if($category){
return new ProductCollection($category->products->paginate(10));
}
}
Код paginate в AppServiceProvider
при boot
метод
Collection::macro('paginate', function($perPage, $total = null, $page = null, $pageName = 'page') {
$page = $page ?: LengthAwarePaginator::resolveCurrentPage($pageName);
return new LengthAwarePaginator(
$this->forPage($page, $perPage),
$total ?: $this->count(),
$perPage,
$page,
[
'path' => LengthAwarePaginator::resolveCurrentPath(),
'pageName' => $pageName,
]
);
});
Результат на первой странице в порядке:
"data": [
{
"id": 6674,
"name": "test",
},
{
"id": 6668,
"name": "test2"
},
],
"links": {
"first": "http://example.test/api/auth/categories/2176?page=1",
"last": "http://example.test/api/auth/categories/2176?page=5",
"prev": null,
"next": "http://example.test/api/auth/categories/2176?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 5,
"path": "http://example.test/api/auth/categories/2176",
"per_page": 10,
"to": 10,
"total": 43
}
Проблема на второй странице ( Цифровой ключ данных (10, 11) перед каждым продуктом, мне нужно удалить его!
"data": {
"10": {
"id": 6613,
"name": "test3",
},
"11": {
"id": 6601,
"name": "test4",
},
},
"links": {
"first": "http://example.test/api/auth/categories/2176?page=1",
"last": "http://example.test/api/auth/categories/2176?page=5",
"prev": "http://example.test/api/auth/categories/2176?page=1",
"next": "http://example.test/api/auth/categories/2176?page=3"
},
"meta": {
"current_page": 2,
"from": 11,
"last_page": 5,
"path": "http://example.test/api/auth/categories/2176",
"per_page": 10,
"to": 20,
"total": 43
}