Я использую необработанный SQL-запрос в Laravel, потому что в начале мне было проще делать сложные запросы, поэтому я использовал их таким образом.
Теперь я хочу получить список комментариев пользователя 7, и я хотел бы разбить комментарии на страницы, в 5.
Вот что у меня есть:
$comments = DB::select( DB::raw("SELECT users.name, reviews.comment, reviews.comment_score FROM reviews JOIN users WHERE reviews.user_id = :logged_user;")
,array('logged_user' => $user_id,));
Таким образом, этот запрос зависит от пользователя, который просматривает представление, получает переменную.
Все, что я вижу для разбивки на страницы, с Eloquent запросами, и я не нахожу никакого четкого использования для этого.
Если я добавлю ‘-> paginate (5)’ в конце последней круглой скобки или позже в переменную, такую как $ comments-> paginate (5); Я получаю:
Ошибка: вызов функции-члена paginate () для массива
Какой-то свет на это ??
Большое спасибо! знак равно
Вы делаете что-то подобное для нумерации страниц.
$perPage = $request->input("per_page", 10);
$page = $request->input("page", 1);
$skip = $page * $perPage;
if($take < 1) { $take = 1; }
if($skip < 0) { $skip = 0; }
$comments = DB::select( DB::raw("SELECT users.name, reviews.comment, reviews.comment_score FROM reviews JOIN users WHERE reviews.user_id = :logged_user;"),array('logged_user' => $user_id,));
$totalCount = $comments->count();
$results = $comments
->take($perPage)
->skip($skip)
->get();
$paginator = new \Illuminate\Pagination\LengthAwarePaginator($results, $totalCount, $take, $page);
return $paginator;
Надеюсь, это поможет вам!
Других решений пока нет …