php laravel paginate,laravel 8 修改默认的paginate分页样式 的方法可以很简单

我们的分页样式成了这样,如果,为了一个分页,放弃bootstrap,是不聪明的,或者重写分页也是不太合适的。

1613964815162459.png

还是老套路,先去百度,看看有没有现成的轮子...

结果搜到了这个,

laravel8替换paginate默认样式

https://www.yuque.com/daixiansheng-arf2u/koh7a1/ervtps

但是,这个文章,是让我们直接修改,框架,内的paginate组件。似乎,能解决问题,但是失去了,laravel 所标的,“优雅”二字。

首先,我们看一下,vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php

88行,和95行

public static $defaultView = 'pagination::default';

public static $defaultSimpleView = 'pagination::simple-default';

以及下方,432行,和443行,

public static function defaultView($view)

{

static::$defaultView = $view;

}

public static function defaultSimpleView($view)

{

static::$defaultSimpleView = $view;

}

不知道,这个造轮子的人,是怎么发现到这里的,与我的逻辑顺序不太一样,哈哈。

我们,分页处,使用的是$data->links();

肯定与links这个方法有关,我们顺着找一下,

我们来到,vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php

这个是分页组件的入口文件,可以这么理解了,找一下,links() 93行,

{!!$

data  -> links('pagination::bootstrap-4')!!}

public function links($view = null, $data = [])

{

return $this->render($view, $data);

}

别看什么都没有,重点是他可以,干什么,对传参,$view,

其它的,你不看看,你还真不知道,他传什么,怎么定义呢?

然后,去view,文件夹,看一下,原来,对应的是模板名,

pagination::simple-default  默认,tailwind样式

pagination::simple-bootstrap-4.blade.php

好了,就写到这里,是不是很简单优雅,一般情况下,建议不要去修改框架本身的东西,这会给后期,升级带来更大的工作量。

$data -> links('pagination::bootstrap-4')

  • 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值