#laravel #collections #laravel-response #laravel-resource
#laravel #Коллекции #laravel-response #laravel-ресурс
Вопрос:
я использую laravel для веб-сервиса. я хочу вернуть коллекцию, подобную этой:
верните response()->json([data => $data]);
и я использую ресурсы laravel api для преобразования коллекции. это мой ресурс:
class Item extends JsonResource
public function toArray($request)
{
return [
'id' => $this->id,
'name'=> $this->name,
'city_dependent' => $this->city_dependent,
];
}
когда я передаю коллекцию ресурсу, например:
$items = Item::where('active' , 1)->paginate(10);
$data = Item::collection($items);
все работает хорошо. если я верну $ data, ссылки на разбивку на страницы и meta вернутся, и проблем не возникнет.
"links": {
"first": "http://127.0.0.1:8000/api/category/items?page=1",
"last": "http://127.0.0.1:8000/api/category/items?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "http://127.0.0.1:8000/api/category/items",
"per_page": 10,
"to": 3,
"total": 3
}
но если я верну данные с помощью response()-> json (), как показано ниже, все данные о «meta» и «ссылках» будут удалены! и все остальное в порядке.
return response()->json([
'result' =>true,
'data' => $data
]);
почему данные разбивки на страницы и ссылки удаляются из данных? есть ли что-нибудь, что я пропустил?
Комментарии:
1. У меня такая же проблема, вы разобрались?
2. Я нашел несколько решений, но они не решили мою проблему. Я просто удалил часть «ресурс» и передал данные без использования ресурсов.
3. Все еще возникает та же проблема, но я думаю, что предложение E.B может быть временным решением.