php - Laravel 5 中的自定义分页 View

标签 php pagination laravel-5

Laravel 4.2 可以选择在 app/config/view.php 中指定自定义 View ,例如:

/*
|--------------------------------------------------------------------------
| Pagination View
|--------------------------------------------------------------------------
|
| This view will be used to render the pagination link output, and can
| be easily customized here to show any view you like. A clean view
| compatible with Twitter's Bootstrap is given to you by default.
|
*/
'pagination' => 'pagination_slider-alt'

这在 Laravel 5 中已经消失,至少关于 view.php 是这样。

有没有办法在 Laravel 5 中复制这种行为?

最佳答案

Laravel 5.3+ 中使用

$users->links('view.name')

Laravel 5.0 - 5.2 中而不是

$users->render()

使用

@include('pagination.default', ['paginator' => $users])

View /分页/default.blade.php

@if ($paginator->lastPage() > 1)
<ul class="pagination">
    <li class="{{ ($paginator->currentPage() == 1) ? ' disabled' : '' }}">
        <a href="{{ $paginator->url(1) }}">Previous</a>
    </li>
    @for ($i = 1; $i <= $paginator->lastPage(); $i++)
        <li class="{{ ($paginator->currentPage() == $i) ? ' active' : '' }}">
            <a href="{{ $paginator->url($i) }}">{{ $i }}</a>
        </li>
    @endfor
    <li class="{{ ($paginator->currentPage() == $paginator->lastPage()) ? ' disabled' : '' }}">
        <a href="{{ $paginator->url($paginator->currentPage()+1) }}" >Next</a>
    </li>
</ul>
@endif

就是这样。


如果您有很多页面,请使用此模板:

views/pagination/limit_links.blade.php

<?php
// config
$link_limit = 7; // maximum number of links (a little bit inaccurate, but will be ok for now)
?>

@if ($paginator->lastPage() > 1)
    <ul class="pagination">
        <li class="{{ ($paginator->currentPage() == 1) ? ' disabled' : '' }}">
            <a href="{{ $paginator->url(1) }}">First</a>
         </li>
        @for ($i = 1; $i <= $paginator->lastPage(); $i++)
            <?php
            $half_total_links = floor($link_limit / 2);
            $from = $paginator->currentPage() - $half_total_links;
            $to = $paginator->currentPage() + $half_total_links;
            if ($paginator->currentPage() < $half_total_links) {
               $to += $half_total_links - $paginator->currentPage();
            }
            if ($paginator->lastPage() - $paginator->currentPage() < $half_total_links) {
                $from -= $half_total_links - ($paginator->lastPage() - $paginator->currentPage()) - 1;
            }
            ?>
            @if ($from < $i && $i < $to)
                <li class="{{ ($paginator->currentPage() == $i) ? ' active' : '' }}">
                    <a href="{{ $paginator->url($i) }}">{{ $i }}</a>
                </li>
            @endif
        @endfor
        <li class="{{ ($paginator->currentPage() == $paginator->lastPage()) ? ' disabled' : '' }}">
            <a href="{{ $paginator->url($paginator->lastPage()) }}">Last</a>
        </li>
    </ul>
@endif

关于php - Laravel 5 中的自定义分页 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28240777/

相关文章:

php - 为什么 mysqli::multi_query 在一定数量的行后停止?

php - xdebug php 5.4 窗口

PHP相当于JavaScript的字符串拆分方法

php - Symfony2 在多个实体上嵌入表单

sorting - Cakephp 3.3 按多列排序分页结果

html - Bootstrap 中的类 "row"使向右拉动更多

javascript - Firebase 实时数据库分页

Laravel 5.2 Eloquent 地返回软删除记录

php - laravel 如何读取 app/config/app.php 调试变量

php - 如何使子表访问另一个表 laravel