thinkphp5 数据库查询之paginate: 同时获取记录总数用$rs->total()和分页数据
web ThinkPHP5.1 2022-01-26 1804 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

7441311 2655 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

thinkphp5 数据库查询之paginate: 同时获取记录总数$rs->total()和分页数据

获取记录总数和分页数据:

public function test()
    {
        $r = db(self::TABLE)->paginate(3, false);
//        $r = model(self::TABLE)->paginate(3, false);
        print_r($r);
 
        $data = [
            'total'     => $r->total(),         // 总记录数
            'cur'       => $r->currentPage(),   // 当前页码
            'size'      => $r->listRows(),      // 每页记录数
            'list'      => $r->items()          // 分页数据
        ];
 
        print_r($data);
    }
最终运行结果:

cmf\paginator\Bootstrap Object
(
    [simple:protected] =>
    [items:protected] => think\Collection Object
        (
            [items:protected] => Array
                (
                    [0] => Array
                        (
                            [id] => 1
                            [email] => 1@163.com
                            [passwd] => e10adc3949ba59abbe56e057f20f883e
                            [nickname] =>
                            [company] =>
                            [contact] =>
                            [address] =>
                            [city] =>
                            [country] => United Kingdom
                            [province] =>
                            [zip_code] =>
                            [phone] =>
                            [token] => ae4e61fa4ec3b7fc144603e4ca8e1f83
                            [check] => 1
                            [check_time] => 2019-08-21 22:23:16
                            [time] => 2019-08-19 10:25:18
                        )
 
                    [1] => Array
                        (
                            [id] => 4
                            [email] => 1121@163.com
                            [passwd] => e10adc3949ba59abbe56e057f20f883e
                            [nickname] =>
                            [company] =>
                            [contact] =>
                            [address] =>
                            [city] =>
                            [country] => 日本
                            [province] =>
                            [zip_code] =>
                            [phone] =>
                            [token] => f1267ace3614544c7eda97e8b831f5ac
                            [check] => 1
                            [check_time] =>
                            [time] => 2019-08-19 12:32:25
                        )
 
                    [2] => Array
                        (
                            [id] => 7
                            [email] => 1112312@163.com
                            [passwd] => e10adc3949ba59abbe56e057f20f883e
                            [nickname] =>
                            [company] =>
                            [contact] =>
                            [address] =>
                            [city] =>
                            [country] => 日本
                            [province] =>
                            [zip_code] =>
                            [phone] =>
                            [token] => ae0ffcc37d1f6f564e6045892f04a5ea
                            [check] => 0
                            [check_time] =>
                            [time] => 2019-08-19 16:43:13
                        )
 
                )
 
        )
 
    [currentPage:protected] => 1
    [lastPage:protected] => 2
    [total:protected] => 6
    [listRows:protected] => 3
    [hasMore:protected] => 1
    [options:protected] => Array
        (
            [var_page] => page
            [path] => /admin/users/test
            [query] => Array
                (
                )
 
            [fragment] =>
            [type] => \cmf\paginator\Bootstrap
            [list_rows] => 15
        )
 
)
Array
(
    [total] => 6
    [cur] => 1
    [size] => 3
    [list] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [email] => 1@163.com
                    [passwd] => e10adc3949ba59abbe56e057f20f883e
                    [nickname] =>
                    [company] =>
                    [contact] =>
                    [address] =>
                    [city] =>
                    [country] => United Kingdom
                    [province] =>
                    [zip_code] =>
                    [phone] =>
                    [token] => ae4e61fa4ec3b7fc144603e4ca8e1f83
                    [check] => 1
                    [check_time] => 2019-08-21 22:23:16
                    [time] => 2019-08-19 10:25:18
                )
 
            [1] => Array
                (
                    [id] => 4
                    [email] => 1121@163.com
                    [passwd] => e10adc3949ba59abbe56e057f20f883e
                    [nickname] =>
                    [company] =>
                    [contact] =>
                    [address] =>
                    [city] =>
                    [country] => 日本
                    [province] =>
                    [zip_code] =>
                    [phone] =>
                    [token] => f1267ace3614544c7eda97e8b831f5ac
                    [check] => 1
                    [check_time] =>
                    [time] => 2019-08-19 12:32:25
                )
 
            [2] => Array
                (
                    [id] => 7
                    [email] => 1112312@163.com
                    [passwd] => e10adc3949ba59abbe56e057f20f883e
                    [nickname] =>
                    [company] =>
                    [contact] =>
                    [address] =>
                    [city] =>
                    [country] => 日本
                    [province] =>
                    [zip_code] =>
                    [phone] =>
                    [token] => ae0ffcc37d1f6f564e6045892f04a5ea
                    [check] => 0
                    [check_time] =>
                    [time] => 2019-08-19 16:43:13
                ) 
        ) 
)
另外, paginate中第3个参数里可以配置请求的页码, 即请求指定页数据, 示例如下:

public function test()
    {
        $r = db(self::TABLE)->alias('a')
            ->join('users_good b', 'b.uid = a.id')
            ->field('uid, a.check,b.chinese,b.math')
            ->paginate(3, false, [
                'page'  => 2                    // 指定请求的页码
            ]);
        print_r($r);
 
        $data = [
            'total'     => $r->total(),         // 总记录数
            'cur'       => $r->currentPage(),   // 当前页码
            'size'      => $r->listRows(),      // 每页记录数
            'list'      => $r->items()          // 分页数据
        ];
 
        print_r($data);
    }

版权声明:本篇文章来源于网络。 来源链接

相关推荐
Non-static method think\Config::get() should not be called statically
ThinkPHP5.1 | 2018-12-29 10949
原来是这样use think\Config; 改成这样use think\facade\Config; 下面是官方手册的解释 配置获取 要使用Config类,首先需要在你的类文件中引入 use think\facade\Config; 或者(因为系统做了类库别名,其实就是调用think\facade\Config) u...
thinkPHP5 order多条件排序
ThinkPHP5.1 | 2017-10-24 10809
总结如下: //单一条件排序 $user = $this->where(['parentId'=>0)->field('userId,userName,userSort,isShow')->order('userSort', 'asc')->select(); //多个条件排序,可以多加一个order...
评论:0条
评论加载中...
发表评论