thinkphp6 分页加参数

本文介绍如何在ThinkPHP框架中实现高级分页功能,特别是在进行搜索操作时,确保分页显示的数据仍然符合搜索条件。通过使用正确的paginate方法参数,可以避免翻页时返回非搜索结果的问题。

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

    //控制器方法
    public function index(){
        $data['logmin'] = isset($_GET['logmin'])?strtotime($_GET['logmin']):'';
        $data['logmax'] = isset($_GET['logmax'])?strtotime($_GET['logmax']):'';
        $data['title']  = isset($_GET['title']) ? trim($_GET['title']) : '';
    
        $list = Banners::listInfo($data);
        // $page = $list->render();
        $position = ['首页','新闻中心','走进为尔','明星产品','联系我们'];
        View::assign('position',$position);
        View::assign('list',$list);
        // View::assign('page',$page);
        return View::fetch();
    }
    //模型方法

        public static function listInfo($data){
        $where = [];
        if(!empty($data['title'])){
            $where[]=['title','like',"%".$data['title']."%"];
        }

        switch(true){
            case !empty($data['logmin'])&&!empty($data['logmax']):
                $where[]=['posttime','between',[$data['logmin'],$data['logmax']]];
            break;
            case !empty($data['logmin']):
                $where[]=['posttime','>=',$data['logmin']];
            break;
            case !empty($data['logmax']):
                $where[]=['posttime','<',$data['logmax']];
            break;
        }        
        $res =  Db::table('Banner')
        ->where($where)
        ->paginate(['list_rows'=>2,'query' => request()->param()]);
        return $res;
        }

thinkphpphp6 分页传参用的不是->paginate(2, false, ['query' => request()->param()]);

而是->paginate(['list_rows'=>2,'query' => request()->param()]);

这能解决做搜索功能的时候,搜索出来的数据分页后,按第二页又显示非搜索数据的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值