Итак, вот ответ на этот вопрос. В случае View Composer Pagination. Вы не можете разбивать на страницы в composer, у вас есть техническая возможность сделать это, но даже если вы пропустили выполнение запросов к поставщику (что, очевидно, является плохой идеей), нумерация страниц все равно не будет работать очень хорошо.
Одна из основных проблем, с которой вы будете сталкиваться в срочном порядке, - это разбиение на страницы на другой странице, такой как posts/postslug
, эта будет легко выдавать ошибки. Поэтому вместо этого вы должны создать очень простую функцию в контроллере и выполнить запросы к этой странице.
Вот пример.
Допустим, вы предоставляете данные с помощью следующего запроса:
$posts = Post::orderBy('created_at', 'desc')
->paginate(15, ["*"], 'sidebar')->withPath('postPaginator');
Функция, которая будет разбивать это на страницы, должна выглядеть примерно так:
public function postPaginator(){
$posts = Post::orderBy('created_at', 'desc')->paginate(15 , ["*"], 'sidebar');
}
если вы хотите, чтобы этот pagiantor был гибким как для запросов ajax, так и для базовых запросов get, вы можете вернуть результат, например:
if($this->request->ajax()) {
return [
'posts' => view('ajax.sidebarindex', ['posts' => $posts])->render(),
'next_page' => $posts->nextPageUrl(),
];
}
$posts->nextPageUrl()
предназначен для предоставления ссылки на следующую страницу, чтобы вы могли назначить ее кнопке для следующей нумерации страниц.