Кастомизация пагинации в laravel 5.1

Ромчик
0

laravelДоброго времени суток. Не так давно я столкнулся с проблемой кастомизации пагинации (постраничного вывода) в Laravel 5.1. Как Вы знаете для того, чтобы вывести блок пагинации (блок постраничной навигации) используется метод render(). Но мне как раз необходимо было изменить вид данного блока. И вот как я поступил…

Создал отдельный шаблон для отображения блока пагинации (постраничной навишации) paginate.blade.php


<?php
    $total=$paginate->total();
    $perPage = $paginate->perPage();
    $lastPage = ceil($total/$perPage);
    $curPage = $paginate->currentPage();
?>

<nav>
    <ul class="pagination">
        <?php $url = $paginate->url(1) ?>
        <li @if($curPage ==1 )class="disabled"@endif>
            <a aria-label="Previous" href="{{ $url }}">
                <span aria-hidden="true">«</span>
            </a>
        </li>
        <?php $p=1 ?>
        @while($p<=$lastPage)
            <?php $url = $paginate->url($p) ?>
            <li @if($curPage == $p) class="active" @endif>
                <a href="{{ $url }}">
                    {{ $p }}
                    @if($curPage == $p)
                        <span class="sr-only">(current)</span>
                    @endif
                </a>
            </li>
            <?php $p=$p+1; ?>
        @endwhile
        <?php $url = $paginate->url($lastPage) ?>
        <li @if($curPage == $lastPage )class="disabled"@endif>
            <a aria-label="Next" href="{{ $url }}" >
                <span aria-hidden="true">»</span>
            </a>
        </li>
    </ul>
</nav>

А в самом шаблоне, где мы хотим вывести блок постраничной навигации вставляем следующий код:

@include('admin.common.paginate',['paginate'=>$staff->appends(Input::except('page'))])

Теперь объясню сам код. При подключении шаблона блока пагинации, мы передаем в переменную paginate набор элементов для пагинации. С помощью appends(Input::except(‘page’)) мы в пагинацию передаем параметры, если они были при запросе. Это необходимо для того, чтобы при постраничной навигации они тоже передавались.

Рассмотрим сам шаблон пагинации.

  1. Метод total() — возвращает общее количество элементов полученных в запросе.
  2. Метод perPage() — возвращает количество элемнтов отображаемых на странице
  3. Метод currentPage() — возвращает номер текущей страницы.
  4. Метод url($page) – возвращает url страницы с номером $page

Вот в принципе и все, а вид блока постраничной навигации Вы уже можете сделать сами в зависимости от требований.

PS: Со всеми методами пагинации в Laravel 5.1 вы может познакомиться на странице API Laravel 5.1.

Понравилась статья? Поделись с друзьями.
  • Add to favorites
  • Добавить ВКонтакте заметку об этой странице
  • Twitter
  • Facebook
  • Мой Мир
  • LiveJournal
  • Одноклассники
  • Блог Я.ру
  • MySpace
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • Reddit
  • StumbleUpon
  • Technorati
  • del.icio.us
  • БобрДобр
  • LinkedIn
  • Memori.ru
  • Сто закладок
  • Blogger

©2012-2020 По всем вопросам обращайтесь через форму обратной связиПолитика конфиденциальности

Яндекс.Метрика