Выборка проходит через множество фильтров, в итоге мы получаем отфильтрованный и отсортированный $users.
И нужно всего лишь пропустить некоторое количество первых строк (кол-во * страница) и отобрать несколько следующих строк, т.е. это кастомная пагинация.
И тут я столкнулся с проблемой: методы
limit(6)
и
take(6)
отлично работают на
$users
, а вот
offset(2)
и
skip(2)
выдают ошибку, что таких методов не существует.
Что же делать в такой ситуации?
Почему не работают методы, описанные в доках и предложенные (и отмеченные решениями) в подобных вопросах о пагинации?
Код:
public function getUsers (Request $request) {
if ( $request->drivecats ) {
$drivecats = explode(',', $request->drivecats);
$users_id = DrivecatUser::whereIn('drivecat_id', $drivecats)->with('drivecats')->pluck('user_id');
$users = User::whereIn('id', $users_id)->get();
} else {
$users = User::has('drivecats')->get();
}
$users = $users->skip(1)->take(6);
return view('pages.users', ['users' => $users]);
}
Ошибка вылетает:
Method skip does not exist.
либо
Method offset does not exist.
Смена методов местами не помогла.