国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

基于 Laravel ORM 的分頁函數(shù)

chen

需要先安裝 illuminate/databaseilluminate/pagination


1. 在 app/functions.php 里自定義函數(shù)

use Illuminate\Pagination\UrlWindow;
use Illuminate\Pagination\LengthAwarePaginator;

if (!function_exists('paginator')) {
    /**
     * laravel orm 分頁器
     * @param LengthAwarePaginator $paginator
     * @param $template
     * @param $data
     * @return string|null
     */
    function paginator(LengthAwarePaginator $paginator, $template = 'pagination/layui', $data = [])
    {
        $window = UrlWindow::make($paginator);
        $elements = array_filter([
            $window['first'],
            is_array($window['slider']) ? '...' : null,
            $window['slider'],
            is_array($window['last']) ? '...' : null,
            $window['last'],
        ]);
        return view($template, array_merge($data, [
            'paginator' => $paginator,
            'elements' => $elements,
        ]))->rawBody();
    }
}

2. 自定義分頁模板

illuminate/pagination自帶了幾個(gè)分頁模板,在 vendor/illuminate/pagination/resources/views 目錄可以找到。
我的項(xiàng)目里用的是 layui ,所以分頁模板自定義了 pagination/layui.blade.php,代碼如下:

@if ($paginator->hasPages())
<div class="layui-box layui-laypage layui-laypage-default" id="layui-laypage-18">
    <a class="layui-laypage-prev {{ $paginator->onFirstPage() ? 'layui-disabled' : '' }}" href="{{ $paginator->onFirstPage() ? 'javascript:void(0);' : $paginator->previousPageUrl() }}">上一頁</a>
    @foreach($elements as $element)
        @if (is_string($element))
            <span class="layui-laypage-spr">{{ $element }}</span>
        @endif
        @if (is_array($element))
            @foreach ($element as $page => $url)
                @if ($page == $paginator->currentPage())
                    <span class="layui-laypage-curr">
                        <em class="layui-laypage-em layui-bg-red"></em>
                        <em>{{ $page }}</em>
                    </span>
                @else
                    <a href="{{ $url }}">{{ $page }}</a>
                @endif
            @endforeach
        @endif
    @endforeach
    <a class="layui-laypage-next {{ !$paginator->hasMorePages() ? 'layui-disabled' : '' }}" href="{{ $paginator->hasMorePages() ? $paginator->nextPageUrl() : 'javascript:void(0);' }}">下一頁</a>
</div>
@endif

3. 使用

// 控制器
class IndexController
{
    $items = Model::query()->paginate();
    return view('index/index', ['items' => $items]);
}
// 模板文件
{!! paginator($items) !!}

4. 效果截圖

截圖

909 1 1
1個(gè)評(píng)論

mincon

插個(gè)眼

  • 暫無評(píng)論

chen

760
積分
0
獲贊數(shù)
0
粉絲數(shù)
2022-01-12 加入
??