【ThinkPHP6.x/微实战】(4)自定义分页类

        *这里为了开发方便,先设置自动跳转到user模块中:

return redirect(url('/user'));

        设置路由后的user页面访问路径为:

http://localhost/tp6demo/public/index.php/user

        进行重定向之后,访问user页面的路径就直接变成了:

http://localhost/tp6demo/public/index.php

 

分页设计

        先了解下Bootstrap分页效果的html设置:

<!--Bootstrap分页效果--> 
<ul class="pagination">
    <li class="page-item">
        <a class="page-link" href="#">
        ... 
        </a>
    </li> 
</ul>

        框架提供了分页的方法,但是样式被写死了:

// 在资源控制器页面
UserModel::order('id', 'asc')->paginate(5)

// 在前端页面
{$list|raw}

        我们可以通过对框架提供的分页方法来实现分页的样式修改,目录如下:

vendor/topthink/src/paginate/dirver/Bootstrap.php

        以此为模板,我们可以自己写一个分页类,在app/common中创建Bootstrap.php文件,将上面文件的代码直接复制过来进行修改。

        那么,这时候框架怎么知道你到底是用common下的Bootstrap.php还是vendor下的Bootstrap.php呢?这里则需要做一个配置,打开app/provider.php,注册自定义的分页类:

// 容器Provider定义文件
return [
    'think\Paginator'        => 'app\common\Bootstrap'
];

        在自定义的分页类里面,找到相关html标签,修改成Bootstrap样式即可。举个例子:

/**
 * 生成一个可点击的按钮
 *
 * @param  string $url
 * @param  string $page
 * @return string
 */
protected function getAvailablePageWrapper(string $url, string $page): string
{
    return '<li class="page-item"><a href="' . htmlentities($url) . '" class="page-link">' . $page . '</a></li>';
}

        在这些方法中,return的值都是标签页面,我们可以提前引入css文件,然后直接对标签添加对应的class即可:

<li class="page-item">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值