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 - Laravel 5.5 mysql 驱动使用两个数据库时报错

PHP system() 给出的结果与终端不同,缺少字体

PHP Mysql 准备查询按照日期排序

php - 分页和 html 表单

php - 添加分页是 WordPress 上的自定义文件页面(论文主题)

ajax - 带有 KNP Paginator Bundle 的 Symfony 2.1 ajax 过滤器

php - 使用 PHP mPdf 生成的 pdf 中的 Highchart 渲染

php - 如何允许 SELECT 查询并阻止其他查询?

php - 从多个表复制列值并插入 Laravel 中的第三个表

php - Laravel 5.2 如何通过 Laravel Eloquent 模型连接三个表