/**
  * @param LengthAwarePaginator $paged
  *
  * @return PaginatedRepresentation
  */
 public function formateHatoeasPaged(LengthAwarePaginator $paged)
 {
     $request = \App::make('request');
     $params = array_merge($request->route()[2], $request->all());
     return new PaginatedRepresentation(new CollectionRepresentation($paged->getCollection(), null, $request->path()), $request->route()[1]['as'], $params, $paged->currentPage(), $paged->perPage(), $paged->lastPage(), 'page', 'per_page', true, $paged->total());
 }
Пример #2
0
 /**
  * @param LengthAwarePaginator|LengthAwarePaginatorContract $paginator
  * @param string                                            $dataKey
  *
  * @return array
  */
 protected function paginatorToArray(LengthAwarePaginator $paginator, $dataKey = 'items')
 {
     return ['total' => $paginator->total(), 'perPage' => $paginator->perPage(), 'currentPage' => $paginator->currentPage(), 'lastPage' => $paginator->lastPage(), 'nextPageUrl' => $paginator->nextPageUrl(), 'prevPageUrl' => $paginator->previousPageUrl(), 'from' => $paginator->firstItem(), 'to' => $paginator->lastItem(), $dataKey => $paginator->items()];
 }
Пример #3
0
    $useLengthAware = true;
    // Paginator class example
    if (!$useLengthAware) {
        $paginatorItems = array_slice($items, $offset);
        $results = new Paginator($paginatorItems, $perPage, $currentPage, $options);
    }
    // End of Paginator example
    // LengthAwarePaginator class example
    if ($useLengthAware) {
        $lengthAwarePaginatorItems = array_slice($items, $offset, $perPage);
        $results = new LengthAwarePaginator($lengthAwarePaginatorItems, $total, $perPage, $currentPage, $options);
    }
    // End of LengthAwarePaginator example
    // Display a paginated table of our array
    echo '<h1>I love hashes</h1>';
    echo '<table>';
    foreach ($results as $result) {
        echo "\n        <tr>\n            <td>{$result['id']}</td>\n            <td>{$result['hash']}</td>\n        </tr>";
    }
    echo '<table>' . "\n";
    echo $results->appends($_GET)->render();
    echo 'Current Page: ' . $results->currentPage();
    echo '<br>Items Per Page: ' . $results->perPage();
    // The following methods are only available when using the LengthAwarePaginator instance
    if ($useLengthAware) {
        echo '<br>From ' . $results->firstItem() . ' to ' . $results->lastItem();
        echo '<br>Total Items: ' . $results->total();
        echo '<br>Last Page: ' . $results->lastPage();
    }
});
$app->run();
Пример #4
0
 /**
  * Return pagination links as array
  * @param LengthAwarePaginator $paginator
  * @return array
  */
 protected function getPaginationLinks($paginator)
 {
     $links = [];
     $links['self'] = urldecode($paginator->url($paginator->currentPage()));
     $links['first'] = urldecode($paginator->url(1));
     $links['last'] = urldecode($paginator->url($paginator->lastPage()));
     $links['prev'] = urldecode($paginator->url($paginator->currentPage() - 1));
     if ($links['prev'] === $links['self'] || $links['prev'] === '') {
         $links['prev'] = null;
     }
     $links['next'] = urldecode($paginator->nextPageUrl());
     if ($links['next'] === $links['self'] || $links['next'] === '') {
         $links['next'] = null;
     }
     return $links;
 }
Пример #5
0
 /**
  * @param \Illuminate\Pagination\LengthAwarePaginator $data
  * @return array
  */
 public function getPaginationToArray($data)
 {
     $list = [];
     if ($data->lastPage() > 1) {
         $window = \Illuminate\Pagination\UrlWindow::make($data);
         $elements = [$window['first'], is_array($window['slider']) ? '...' : null, $window['slider'], is_array($window['last']) ? '...' : null, $window['last']];
         if ($url = $data->previousPageUrl() ?: '') {
             $list[] = $this->getItemForPagination('', '&laquo;', $url, 'prev', $data->currentPage() - 1);
         }
         foreach ($elements as $item) {
             if (is_string($item)) {
                 $list[] = $this->getItemForPagination('disabled', $item);
             }
             if (is_array($item)) {
                 foreach ($item as $page => $url) {
                     if ($page == $data->currentPage()) {
                         $list[] = $this->getItemForPagination('active', $page);
                     } else {
                         $list[] = $this->getItemForPagination('', '', $url, '', $page);
                     }
                 }
             }
         }
         if ($data->hasMorePages()) {
             $list[] = $this->getItemForPagination('', '&raquo;', $data->nextPageUrl(), 'next', $data->currentPage() + 1);
         }
     }
     return $list;
 }
Пример #6
0
 public function paginate(LengthAwarePaginator $paginator)
 {
     return ["count" => $paginator->count(), "current_page" => $paginator->currentPage(), "last_page" => $paginator->lastPage(), "per_page" => $paginator->perPage(), "total" => $paginator->total()];
 }
Пример #7
0
 /**
  * [buildHeaderLinks description]
  * @param  Paginator $collection [description]
  * @return [type]                [description]
  */
 private function buildHeaderLinks(Paginator $collection)
 {
     $links = array();
     if ($collection->nextPageUrl()) {
         $links[] = $this->buildHeaderLink('next', $collection->nextPageUrl(), $collection->perPage());
     }
     if ($collection->previousPageUrl()) {
         $links[] = $this->buildHeaderLink('prev', $collection->previousPageUrl(), $collection->perPage());
     }
     $links[] = $this->buildHeaderLink('first', $collection->url(1), $collection->perPage());
     $links[] = $this->buildHeaderLink('last', $collection->url($collection->lastPage()), $collection->perPage());
     return join($links, ", ");
 }