Документация по Lagvel paginator немного короткая, особенно с созданием / разбиением на страницы вручную, как вам придется сделать ... вот краткий обзор того, как они работают, как заставить их работать ...
Никакой магии, пагинаторы будут вызывать функцию вашего контроллера для каждой страницы.Запрос будет содержать информацию о нумерации страниц.Это ваша работа на самом деле выбрать и нарезать страницу.Пагинатор просто представляет это ... что является большой частью работы ...
Ваш массив $ channel [] должен быть разрезан и возвращен должным образом ... что-то вроде этого ...
public function channels(){
// we have to build the paginator ourselves, your result is an array...
$user = \Auth::user();
foreach ($user->categories as $category) {
$channels[] = $category->channel();
}
// this basically gets the request's page variable...This is how pagination works under the hood... we defaults to 1
$page = Paginator::resolveCurrentPage('page') ?: 1;
// Assume 15 items per page... so start index to slice our array
$startIndex = ($page - 1) * 15;
// Length aware paginator needs a total count of items... to paginate properly
$total = count($channels);
// Eliminate the non relevant items... We have to slice the array ourselves...
$results = array_slice($channels, $startIndex, 15);
$paginatedChannels = new LengthAwarePaginator($results, $total, 15, $page, [
'path' => Paginator::resolveCurrentPath(),
'pageName' => 'page',
]);
return view('yourViews', compact('paginatedChannels'));
}
Суть в том, что вы должны самостоятельно подготовить срез данных ...
Вы можете опубликовать свою структуру данных, чтобы мы могли найти лучшую альтернативу самому запросу ... ноэто должно работать, если эта функция $ category-> channel () работает ...