根据以下代码 增加layui分页功能 public function index(){ //数据总数 $map = []; $status = input('status'); if($status){ $map['status'] = $status; } $typeId = input('typeId'); if($typeId){ $map['typeId'] = $typeId; } $page = input('page',1); $pageSize = input('pageSize',3); $result = AboutuslistMod::field('*')->where($map)->paginate($pageSize,false,['query' => request()->param()]); $list = $result->toArray(); if(!empty($list)){ $list = $list; $total = $list['total']; $data = $list['data']; } unset($list); $typeList = AboutuslistMod::getType(); $this->assign([ 'page' => $page, 'pageSize' => $pageSize, "total"=> $total, "list"=> $data, "typeList" => $typeList, "pages"=> $result->render() ]); return $this->fetch(); }
时间: 2023-11-27 19:51:20 浏览: 72
在这段代码中,首先获取了筛选条件,然后使用 `paginate` 方法获取分页数据。要增加 layui 的分页功能,可以按照以下步骤操作:
1. 在模板文件中引入 layui 的分页样式和 JavaScript 文件
```html
<link rel="stylesheet" href="/layui/css/layui.css">
<script src="/layui/layui.js"></script>
```
2. 在模板文件中添加一个 div 元素作为分页容器
```html
<div id="pagination"></div>
```
3. 在控制器中将分页数据传递到模板文件中,并且使用 layui 的分页组件渲染分页容器
```php
$this->assign([
'page' => $page,
'pageSize' => $pageSize,
'total' => $total,
'list' => $data,
'typeList' => $typeList,
'pages' => $result->render()
]);
// 增加 layui 分页组件的渲染
$js = <<<JS
layui.use(['laypage'], function(){
var laypage = layui.laypage;
laypage.render({
elem: 'pagination',
count: {$total},
limit: {$pageSize},
curr: {$page},
jump: function(obj, first){
if(!first){
window.location.href = '/index.php/index/index?page=' + obj.curr + '&pageSize=' + obj.limit;
}
}
});
});
JS;
$this->assign('js', $js);
```
在上述代码中,使用了 layui 的 `laypage.render()` 方法渲染了分页组件。其中,`elem` 参数指定了分页容器的 ID,`count` 参数指定了总数据量,`limit` 参数指定了每页显示的数据量,`curr` 参数指定了当前页码。`jump` 参数指定了分页操作的回调函数,这里使用了 JavaScript 跳转页面的方式实现分页。
4. 在模板文件中使用分页变量渲染分页组件
```html
{$pages|raw}
```
最后,为了使 layui 分页样式生效,需要在 JavaScript 中初始化 layui:
```html
<script>
layui.use(['laypage'], function(){});
</script>
```
阅读全文