laravel自定义分页

       本篇博客将给大家讲述如何修改博客的分页样式,这是博主前几天再修改界面分页样式所遇到的问题。 

       博主也是先百度,但是网络上的答案也是层出不穷,很多人其实都没实践过,而是随便贴代码就这样,在这里我真的要吐槽一下,好了进入正轨。

       我们先新建一个页面,在resources/views/home/partials中建一个页面(由于我的前端页面是放在home文件夹中,看个人情况存放),我自己命名的的文件名为paginator.blade.php。建完这个页面之后,我们在根目录中的vendor/laravel/framework/src/Illuminate/Pagination/resources/view看到有4个文件,我们打开default.blade.php,并复制代码到我们前面创建的页面中,代码如下:

@if ($paginator->hasPages())
    {{-- Previous Page Link --}}
    @if ($paginator->onFirstPage())
     «        
    @else
     previousPageUrl() }}" rel="prev" _href="{{ $paginator->previousPageUrl() }}">
     «        
    @endif
    {{-- Pagination Elements --}}
    @foreach ($elements as $element)
       {{-- "Three Dots" Separator --}}
       @if (is_string($element))
           {{ $element }}            
       @endif
       {{-- Array Of Links --}}
       @if (is_array($element))
           @foreach ($element as $page => $url)
               @if ($page == $paginator->currentPage())
                  {{ $page }}                   
               @else
                  {{ $page }}                    
               @endif
           @endforeach
        @endif
    @endforeach
    {{-- Next Page Link --}}
    @if ($paginator->hasMorePages())
        nextPageUrl() }}" rel="next" _href="{{ $paginator->nextPageUrl() }}"> 
        »        
    @else
        »        
    @endif
@endif

       然后我们开始根据样式修改里面的类,这个看个人需求,下面我就贴出我的分页样式代码,供大家参考,代码如下:

.paginator-content {
    padding: 1rem;
    margin: 3rem auto;
    border-radius: 0.2rem;
    counter-reset: pagination;
    text-align: center;
}

.paginator-content ul {
    width: 100%;
}

.paginator-content ul {
    list-style: none;
    display: inline;
    padding-left: 0px;
}

.paginator-content li {
    border: solid 1px #d6d6d6;
    border-radius: 0.2rem;
    color: #7d7d7d;
    text-decoration: none;
    text-transform: uppercase;
    display: inline-block;
    text-align: center;
    padding: 0.5rem 0.9rem;
}

        写完以上代码样式后,接下来就是重要的一部,在用到分页的页面中,我们通常都是以

{{ $blog->links() }}

       这个是默认的分页样式,接下来我们就把他改成我们自己写的分页样式,代码如下:

{{ $blog->links('home.partials.paginator') }}

       

       好了,这样就成功使用自定义分页样式了。

       这期就给大家讲到这里,下期我们继续。

      更多文章请关注微信公众号

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Laravel 中,我们可以通过自定义 Paginator 类来实现自定义分页数据结构。 首先,我们需要创建一个新的 Paginator 类,可以在 `app` 目录下创建一个 `CustomPaginator.php` 文件。在这个类中,我们需要继承 Laravel 内置的 Paginator 类,并实现 `__construct` 和 `toArray` 方法。例如: ```php <?php namespace App; use Illuminate\Pagination\Paginator; class CustomPaginator extends Paginator { public function __construct($items, $perPage, $currentPage, $options = []) { parent::__construct($items, $perPage, $currentPage, $options); } public function toArray() { return [ 'data' => $this->items->toArray(), 'pagination' => [ 'total' => $this->total(), 'count' => $this->count(), 'per_page' => $this->perPage(), 'current_page' => $this->currentPage(), 'total_pages' => $this->lastPage() ] ]; } } ``` 在上面的代码中,我们在 `toArray` 方法中定义了自定义分页数据结构,包括数据和分页信息。其中,`data` 表示当前页的数据,`pagination` 表示分页信息。你可以根据自己的需求修改这个数据结构。 然后,在使用自定义分页数据结构的时候,可以使用 `CustomPaginator` 类来实现。例如: ```php use App\CustomPaginator; $items = DB::table('users')->paginate(15); $customPaginator = new CustomPaginator($items->items(), $items->perPage(), $items->currentPage()); $result = $customPaginator->toArray(); ``` 在上面的代码中,我们先使用内置的 `paginate` 方法来获取分页数据,然后将其转换成自定义分页数据结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佛布朗斯基

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值