Как исправить laravel eloquent и объект DB, возвращающий пустые элементы (модели)

#laravel-5 #laravel-pagination

#laravel-5 #laravel-разбивка на страницы

Вопрос:

Я заметил, что эта проблема возникла, когда я хотел сгенерировать разбивку на страницы для метода listStory () внутри контроллера.Когда я исследовал, я обнаружил, что #items пуст, чего не было изначально. Он правильно вычисляет общее количество.

Во время моего расследования я попытался:

 $allStoryByTeller = Story::all();
dd($allStoryByTeller);
  

и он возвращает:

 Collection {#344 ▼
  #items: array:10 [▼
    0 => Story {#345 ▶}
    1 => Story {#346 ▶}
    2 => Story {#347 ▶}
    3 => Story {#348 ▶}
    4 => Story {#349 ▶}
    5 => Story {#350 ▶}
    6 => Story {#351 ▶}
    7 => Story {#352 ▶}
    8 => Story {#353 ▶}
    9 => Story {#354 ▶}
  ]
}
  

что должно быть тем, что содержит #items в приведенном ниже выводе:

 public function listStory()
{
    $allStoryByTeller = Story::with([
        'user'
    ])->paginate($perPageCount = 10);
    dd($allStoryByTeller);
    ...
}
  

и этот фрагмент выше возвращает:

 LengthAwarePaginator {#316 ▼
  #total: 9
  #lastPage: 1
  #items: Collection {#318 ▼
    #items: []
  }
  #perPage: 10
  #currentPage: 2
  #path: "http://127.0.0.1:8000/v1/stories/list"
  #query: []
  #fragment: null
  #pageName: "page"
   onEachSide: 3
  #options: array:2 [▶]
}
  

Я ожидал, что #items будет содержать 9 моделей вместо того, чтобы быть [] пустым, поскольку общее количество вычислено правильно.

Ответ №1:

Я понимаю, что #items не загружался из-за того, что я был на второй странице с клиентом Rest, который я использовал. Я установил количество страниц равным 20, поэтому нахождение на второй странице означает, что все модели были исчерпаны на первой странице.