コード例 #1
0
 public function getPagination(QueryBuilder $queryBuilder, DataSetRequestInterface $request, ColumnCollection $columns)
 {
     $total = $this->dataSetPaginator->getTotalRows($queryBuilder, $columns);
     $offset = $request->getOffset();
     $limit = $request->getLimit();
     $currentPage = $offset / $limit + 1;
     $totalPages = ceil($total / $limit);
     return ['totalRows' => $total, 'currentPage' => $currentPage, 'totalPages' => ceil($total / $limit), 'currentResult' => ['rangeFrom' => $offset, 'rangeTo' => $this->calculateCurrentResultEnd($offset, $limit, $total)], 'nextPage' => $this->getNextPage($totalPages, $offset, $limit), 'previousPage' => $this->getPreviousPage($currentPage), 'pages' => $this->getPages($totalPages, $currentPage)];
 }
コード例 #2
0
 /**
  * Prepares an ordering expression
  *
  * @param DataSetRequestInterface $request
  * @param ColumnCollection        $columns
  *
  * @return Expr\OrderBy
  */
 protected function getOrderByExpression(DataSetRequestInterface $request, ColumnCollection $columns)
 {
     $column = $columns->get($request->getOrderBy());
     $orderBy = $column->isAggregated() ? $column->getAlias() : $column->getSource();
     $orderDir = $request->getOrderDir();
     return new Expr\OrderBy($orderBy, $orderDir);
 }