public function forPage($page, $perPage = 15) { return $this->skip(($page - 1) * $perPage)->take($perPage); }
/** * 주어진 db query를 실행한다. * * @param Builder $query 질의 * @param int|int[]|stdClass $navigation 검색시 사용할 navigation(page, perPage, sort, order) 정보 * * @return array */ protected function executeQuery($query, $navigation = null) { // set default $order = $this->defaultOrder; $sort = $this->defaultSort; $perPage = $this->defaultPerPage; $page = null; if (is_array($navigation)) { list($page, $perPage) = $navigation; } elseif (is_object($navigation)) { $page = data_get($navigation, 'page', $page); $perPage = data_get($navigation, 'perPage', $perPage); $order = data_get($navigation, 'order', $order); $sort = data_get($navigation, 'sort', $sort); } if ($sort !== null) { $query->orderBy($sort, $order); } if ($navigation === null) { $collection = $query->get(); } elseif ($page !== null) { $collection = $query->forPage($page, $perPage); } else { $collection = $query->paginate($perPage); } return $collection; }