Laravel 通过服务提供者来自定义分页样式

需求介绍

Laravel默认了分页,实现非常优雅,但有时候会遇到修改默认的样式,比如我要将默认的 <ul class="pagination">修改为 <ul class="pagination pagination-sm no-margin">

解决方法切入点

Laravel自带的分页链接样式由Illuminate\Pagination\BootstrapThreePresenter的render方法生成,我们在此方法上做文章即可实现。

创建重写render方法的类

创建文件:App/Presenters/PagiationPresenter

<?php
namespace App\Presenters;
use Illuminate\Support\HtmlString;
use Illuminate\Pagination\BootstrapThreePresenter;
class PagiationPresenter extends BootstrapThreePresenter
{
    public function render()
    {
        if ($this->hasPages()) {
            return new HtmlString(sprintf(
                '<ul class="pagination pagination-sm no-margin">%s %s %s</ul>',
                $this->getPreviousButton(),
                $this->getLinks(),
                $this->getNextButton()
            ));
        }
        return '';
    }
}

创建服务提供者PaginationServiceProvider

<?php
namespace App\Providers;
use App\Presenters\PagiationPresenter;
use Illuminate\Pagination\Paginator;
use Illuminate\Pagination\AbstractPaginator;
use Illuminate\Support\ServiceProvider;
class PaginationServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        //自定义分页
        Paginator::presenter(function (AbstractPaginator $paginator) {
            return new PagiationPresenter($paginator);
        });
    }
    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

将服务提供者添加到config/app.php

'providers' => [
        /*
         * Laravel Framework Service Providers...
         */
         ...
        App\Providers\PaginationServiceProvider::class,
    ],

原文链接 :http://blog.kesixin.xin/article/52

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 先说几句废话,调和气氛。事情的起由来自客户需求频繁变更,伟大的师傅决定横刀立马的改革使用新的框架(created ...
    wsdadan阅读 8,277评论 0 12
  • 原文链接 必备品 文档:Documentation API:API Reference 视频:Laracasts ...
    layjoy阅读 12,728评论 0 121
  • 分页 简介 在其他框架中,分页通常是比较痛苦的。laravel 使其变的非常简单。laravel 可以根据当前页面...
    Dearmadman阅读 13,237评论 0 10
  • 校园失物招领平台开发 ——基于laravel框架构建最小内容管理系统 摘要 ​ 针对目前大学校园人口密度大、人群活...
    蓝莲花xzsky阅读 11,384评论 8 54
  • 是年少时的梦想 亦是曾经努力的方向 站在高山之巅上 看世间森罗万象 停下脚步 狩猎追捕 血吟戕补 纵身而下 西落碧...
    不是南珂阅读 1,454评论 0 1

友情链接更多精彩内容