コード例 #1
0
 /**
  * Returns a Page of entities meeting the paging restriction provided in the Pageable object.
  *
  * @param Pageable $pageable
  *
  * @return Page
  */
 public function findAll(Pageable $pageable = null)
 {
     $model = self::$instance;
     $query = $model->query();
     if ($pageable) {
         $fields = $pageable->fields();
         $columns = !$fields->isNull() ? $fields->get() : ['*'];
         if (count($distinctFields = $pageable->distinctFields()->get()) > 0) {
             $query->getQuery()->distinct();
             $columns = $distinctFields;
         }
         $filter = $pageable->filters();
         if (!$filter->isNull()) {
             EloquentFilter::filter($query, $filter);
         }
         $sort = $pageable->sortings();
         if (!$sort->isNull()) {
             EloquentSorter::sort($query, $sort);
         }
         $pageSize = $pageable->pageSize();
         $pageSize = $pageSize > 0 ? $pageSize : 1;
         return new ResultPage($query->paginate($pageable->pageSize(), $columns, 'page', $pageable->pageNumber())->items(), $query->paginate()->total(), $pageable->pageNumber(), ceil($query->paginate()->total() / $pageSize));
     }
     return new ResultPage($query->paginate($query->paginate()->total(), ['*'], 'page', 1)->items(), $query->paginate()->total(), 1, 1);
 }
コード例 #2
0
 /**
  * Returns the total amount of elements in the repository given the restrictions provided by the Filter object.
  *
  * @param Filter|null $filter
  *
  * @return int
  */
 public function count(Filter $filter = null)
 {
     $model = self::$instance;
     $query = $model->query();
     if ($filter) {
         EloquentFilter::filter($query, $filter);
     }
     return (int) $query->getQuery()->count();
 }