本文整理汇总了PHP中Illuminate\Database\Query\Builder::forPage方法的典型用法代码示例。如果您正苦于以下问题:PHP Builder::forPage方法的具体用法?PHP Builder::forPage怎么用?PHP Builder::forPage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Illuminate\Database\Query\Builder
的用法示例。
在下文中一共展示了Builder::forPage方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: executeQuery
/**
* 주어진 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;
}
示例2: paginate
protected function paginate(Builder $builder, $perPage)
{
$page = Paginator::resolveCurrentPage();
$total = $builder->count();
$query = $builder->forPage($page, $perPage);
$results = $query->get();
return new LengthAwarePaginator($results, $total, $perPage, $page, ['path' => Paginator::resolveCurrentPath()]);
}
示例3: paginate
/**
* Paginate the given query.
*
* @param int $perPage
* @param array $columns
* @param string $pageName
* @param int|null $page
* @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
*
* @throws \InvalidArgumentException
*/
public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
{
if ($perPage <= 0) {
throw new InvalidArgumentException("Negative 'perPage' value provided to 'paginate' method.");
}
$total = $this->query->getCountForPagination();
$this->query->forPage($page = $page ?: Paginator::resolveCurrentPage($pageName), $perPage = $perPage ?: $this->model->getPerPage());
return new LengthAwarePaginator($this->get($columns), $total, $perPage, $page, ['path' => Paginator::resolveCurrentPath(), 'pageName' => $pageName]);
}
示例4: ungroupedPaginate
/**
* Get a paginator for an ungrouped statement.
*
* @param \Illuminate\Pagination\Environment $paginator
* @param int $perPage
* @param array $columns
* @return \Illuminate\Pagination\Paginator
*/
protected function ungroupedPaginate($paginator, $perPage, $columns)
{
$total = $this->query->getPaginationCount();
// Once we have the paginator we need to set the limit and offset values for
// the query so we can get the properly paginated items. Once we have an
// array of items we can create the paginator instances for the items.
$page = $paginator->getCurrentPage($total);
$this->query->forPage($page, $perPage);
return $paginator->make($this->get($columns)->all(), $total, $perPage);
}
示例5: forPage
/**
* Set the limit and offset for a given page.
*
* @param int $page
* @param int $perPage
* @return \Illuminate\Database\Query\Builder|static
* @static
*/
public static function forPage($page, $perPage = 15)
{
return \Illuminate\Database\Query\Builder::forPage($page, $perPage);
}
示例6: paginate
/**
* Paginate the given query.
*
* @param int $perPage
* @param array $columns
* @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
*/
public function paginate($perPage = 15, $columns = ['*'])
{
$total = $this->query->getCountForPagination();
$this->query->forPage($page = Paginator::resolveCurrentPage(), $perPage = $perPage ?: $this->model->getPerPage());
return new LengthAwarePaginator($this->get($columns)->all(), $total, $perPage, $page, ['path' => Paginator::resolveCurrentPath()]);
}
示例7: paginate
/**
* Paginate the given query.
*
* @param int $perPage
* @param array $columns
* @param string $pageName
* @param int|null $page
* @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
*
* @throws \InvalidArgumentException
*/
public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
{
$total = $this->query->getCountForPagination();
$this->query->forPage($page = $page ?: Paginator::resolveCurrentPage($pageName), $perPage = $perPage ?: $this->model->getPerPage());
return new LengthAwarePaginator($this->get($columns), $total, $perPage, $page, ['path' => Paginator::resolveCurrentPath(), 'pageName' => $pageName]);
}