возвращая ответ с помощью json в laravel api, удаляются ссылки на разбивку коллекции на страницы

#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 может быть временным решением.