@demeys

Как выбрать n строк с и разбить по страницам?

Нужно выбрать например первые 100 строк с базу MYsql, и результат разбить по страницам
пишу так
if(Helpers::hasValue($params['limit']))  return $q->limit($params['limit'])->paginate($params['limit']);

Целый код функции
public function get($params = [], $with = [], $callable)
    {
        $q = $this->model->with($with);

        $q->orderBy($params['order_by'] ?? 'id', $params['order_sort'] ?? $params['order'] ?? 'desc');

        $q = call_user_func_array($callable,[&$q]);

        // if per page is -1, we don't need to paginate at all, but we still return the paginated
        // data structure to our response. Let's just put the biggest number we can imagine.
        if(Helpers::hasValue($params['per_page']) && ($params['per_page']==-1)) $params['per_page'] = 999999999999;
	if(Helpers::hasValue($params['limit']))  return $q->limit($params['limit'])->paginate($params['limit']);

		if (isset($params['all'])){
			return  $q->get();
		}
		else
        	return  $q->paginate($params['per_page'] ?? 20);
    }


но выводяться все строки, а мне нужно вывести кол-во строк заданное пользователем
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
@kiukishenkaec
$q->limit($params['limit'])->paginate($params['limit']);

у вас тут limit() = paginate() это значит выбрать 100 записей и разбить их на части по 100
paginate() должно быть меньшим числом
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы