TP5 paginate()详细参数

本文介绍如何在ThinkPHP5中实现带有关键词分页的数据搜索功能,详细讲解了paginate函数的使用方法,并提供了一个结合AJAX实现无刷新分页的具体实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Thinkphp5 做数据搜索需要带关键词分页,如何将查询条件带入到分页中,本文详细介绍Thinkphp5 分页带参数

一、基本使用方法:


$list = Db::name('user')->where('status',1)->paginate(10);

二、查看thinkphp5 paginate()函数

paginate()函数可以带三个参数:

$listRows  每页数量 数组表示配置参数

$simple   是否简洁模式或者总记录数 如果为true,那么分页的就是只有上一页和下一页
 

$config   配置参数 具体可以自己传入或者在配置文件中配置

 

$config 参数具体配置

 

参数描述
list_rows每页数量
page当前页
pathurl路径
queryurl额外参数
fragmenturl锚点
var_page分页变量
type分页类名

三、解决方案:

 

    $list = Db::name('user')->where('status',1)->paginate(10,false,
    [
        'type'     => 'Bootstrap',
        'var_page' => 'page',
        //使用jqery 无刷新分页
       'path'=>'javascript:AjaxPage([PAGE]);'
       //第一种方法,使用数组方式传入参数
         'query' => ['keyword'=>$keyword],
    // 第二种方法,使用函数助手传入参数
    // 'query' => request()->param(),
     ]
     
    );

使用时在html模板页相应位置放入{$list->render()}

<!-- 分页 -->
<div class="row">
    <div id="result">
        {$list->render()}
    </div>
</div>

此时页面里会生成一个页码界面.

虽然方法很简单,但是存在一个问题,每次点击页面都要刷新,用户体验很不好,所以要在tp5原有分页类的基础上加一个ajax操作,直接上代码:

模板jquery_ajax代码:

<script>
       var AjaxPage = function(page){
            $.ajax({
                url:'http://xxx/public/index.php/back/topic/ajaxList',
                type:'post',
                dataType:'json',
                data: {apage:page},
                success:function(data){
                    //console.log(data)
                    $("#result").html(data.page);
                }
            });
        }

</script>

控制器controller\Topic.php

   //显示分类管理界面
    public function listAction(){
        $list = model('Topic')->paginate(10,false,[
           'type'     => 'Bootstrap',
           'var_page' => 'page',
           'path'=>'javascript:AjaxPage([PAGE]);',
           //使用函数助手传入参数
           'query' => request()->param(),
        ]);
//        $res = $mem->getList();
        $this->assign('list',$list);
        return $this->fetch('list');
    }

因为使用了模型方法,还要定义一个模型类model\Topic.php

<?php
/**
 * Created by PhpStorm.
 * Date: 2017/10/23
 * Time: 11:58
 */
namespace app\back\model;

use think\Model;

class Topic extends Model {

}

测试结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值