- 51浏览
- 2022-10-21
1.修改样式文件
进入项目根目录下的thinkphp文件夹下的library文件夹下的paginator,打开paginator文件夹中的dirver文件夹,看到有一个bootstrap.php文件,将该文件复制一份,重命名为Layui.php(可自定义,首字母大写,这里命名为Layui.php),并将Layui.php中的类名修改为Layui(class Layui extends Paginator)2.修改分页样式
打开Layui.php文件,找到render方法(大致在109行,注释写着渲染分页),修改return sprintf('你想要的样式',参数,参数(根据你%s的个数携带相同个数的参数,详情请百度php sprintf函数)),一般来说只修改这里是不够的,你还需要修改getAvailablePageWrapper,getDisabledTextWrapper,getActivePageWrapper这三个方法,将他们的返回值改成你所需要的HTML代码.就可以了.最后会给出示例代码.
3.修改配置文件
进入项目跟目录下的application文件夹,在你存放后台文件的文件夹下创建config.php(例:application下的api文件是处理接口,admin文件夹是后台管理系统文件夹,config.php就是创建在admin文件夹下,也可以直接把application的config.php复制过来).创建好之后输入代码:
<?php
return [
// +站三界导航www.zhansanjie.com
// | 应用设置
// +----------------------------------------------------------------------
//分页配置
'paginate' => [
'type' => 'Layui',//这里改成你修改的样式文件
'var_page' => 'page'
'list_rows' => 10,
],
];
4.修改查询代码将你控制器里的select语句修改为paginate($this->_row(每页条数),false,$this->_param(参数)),view层展示页码的位置将原来的静态html代码替换成{$list(这里是用assgin传递过来的参数)->render()}时候刷新页面即可
5.示例代码
Layui.php 部分代码:
/**
* 渲染分页html
* @return mixed
*/
public function render()
{
if ($this->hasPages()) {
if ($this->simple) {
return sprintf(
'<div class="layui-card-body">
<div class="page">
<div>
%s %s
</div>
</div>
</div>',
$this->getPreviousButton(),
$this->getNextButton()
);
} else {
return sprintf(
'<div class="layui-card-body">
<div class="page">
<div>
%s %s %s
</div>
</div>
</div>',
$this->getPreviousButton(),
$this->getLinks(),
$this->getNextButton()
);
}
}
}
/**
* 生成一个可点击的按钮
*
* @param string $url
* @param int $page
* @return string
*/
protected function getAvailablePageWrapper($url, $page)
{
return '<a class="num" href="' . htmlentities($url) . '" style="margin:1px">' . $page . '</a>';
}
/**
* 生成一个禁用的按钮
*
* @param string $text
* @return string
*/
protected function getDisabledTextWrapper($text)
{
return '<a class="prev" href="javascript:void(0);">' . $text .'</a>';
}
/**
* 生成一个激活的按钮
*
* @param string $text
* @return string
*/
protected function getActivePageWrapper($text)
{
return '<span class="current num" style="margin:2px">' . $text . '</span>';
}
控制器代码:
public function lists()
{
$manager = new ManagerModel();
$lists = $manager->where($this->_map)->paginate($this->_row,false,$this->_param);
//...无关代码
$this->assign('lists', $lists);//这里传递参数
return $this->fetch();//返回视图
}
视图层代码:
//...主体内容
{$lists->render()}//分页
原视图层代码
//...主体内容
//页码样式( 替换成{$lists->render()} )
<div class="layui-card-body ">
<div class="page">
<div>
<a class="prev" href=""><<</a>
<a class="num" href="">1</a>
<span class="current">2</span>
<a class="num" href="">3</a>
<a class="num" href="">489</a>
<a class="next" href="">>></a></div>
</div>
</div>
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。