zoukankan      html  css  js  c++  java
  • yii---对数组进行分页

    很多时候,我们会对多个数据进行分页处理,例如我最近开发的一个功能,系统消息,系统消息的来源是多个表,而且多个表之间的数据没有任何关联,这个时候,需要对多个表进行查询,查询返回的数据进行分页,而且采用的是异步无刷新分页。

    使用的是YII的ArrayDataProvider:具体位置:

    怎样引入?

    打开看它的命名空间:

    namespace yiidata;

    到项目的引用方式:

    use yiidataArrayDataProvider;

    具体使用:

    public function actionMessagesystem(){
        $list = [
            array('id'=>1,'username'=>'aa','password'=>'aaaaaaaaaaaa','create_time'=>1),
            array('id'=>2,'username'=>'bb','password'=>'bbbbbbbbbbbb','create_time'=>3),
            array('id'=>3,'username'=>'cc','password'=>'cccccccccccc','create_time'=>5),
            array('id'=>4,'username'=>'dd','password'=>'dddddddddddd','create_time'=>7),
            array('id'=>5,'username'=>'ee','password'=>'eeeeeeeeeeee','create_time'=>8),
            array('id'=>6,'username'=>'ff','password'=>'ffffffffffff','create_time'=>9),
            array('id'=>7,'username'=>'gg','password'=>'gggggggggggg','create_time'=>12),
            array('id'=>8,'username'=>'hh','password'=>'hhhhhhhhhhhh','create_time'=>10),
            array('id'=>9,'username'=>'jj','password'=>'jjjjjjjjjjjj','create_time'=>10),
            array('id'=>10,'username'=>'qq','password'=>'qqqqqqqqqqqq','create_time'=>10),
            array('id'=>11,'username'=>'www','password'=>'wwwwwwwwwww','create_time'=>20),
            array('id'=>12,'username'=>'xx','password'=>'xxxxxxxxxxxx','create_time'=>10),
            array('id'=>13,'username'=>'zz','password'=>'zzzzzzzzzzzz','create_time'=>10),
        ];
        // $page = 2;
        $provider = new ArrayDataProvider([
            'allModels' => $list,
            'sort' => [
                'attributes' => ['id', 'username', 'password','create_time'],
                'defaultOrder' => [
                    'create_time'=>SORT_DESC,
                    'id'=>SORT_ASC
                ]
            ],
            'pagination' => [
                'page' => 0,
                'pageSize' => 3
            ],
        ]);
        echo $provider->getCount(); // 获取分页的数量
        echo $provider->getTotalCount(); //获取分页总数
        $lists = $provider->getModels(); // 获取分页后的数据
        p($lists); 
        echo "message system";
    }

    注意这里 page=>0 表示的是异步请求第一页,如果不是异步可以这样做:

    示例
    
    http://xx.xxx.com/test/index(默认地址) 默认返回 前十条数据
    
    http://xx.xxx.com/test/index?page=2 第二页数据
    
    http://xx.xxx.com/test/index?sort=-key 数组key值倒序,倒序排序后十条
    
    http://xx.xxx.com/test/index?sort=-key&page=3&page_size=20 分页大小为20,倒序排序第三页
    

    参考:

    https://blog.csdn.net/baijingdong/article/details/53302485
  • 相关阅读:
    AIMS 2013中的性能报告工具不能运行的解决办法
    读懂AIMS 2013中的性能分析报告
    在线研讨会网络视频讲座 方案设计利器Autodesk Infrastructure Modeler 2013
    Using New Profiling API to Analyze Performance of AIMS 2013
    Map 3D 2013 新功能和新API WebCast视频下载
    为Autodesk Infrastructure Map Server(AIMS) Mobile Viewer创建自定义控件
    ADN新开了云计算Cloud和移动计算Mobile相关技术的博客
    JavaScript修改css样式style
    文本编辑神器awk
    jquery 开发总结1
  • 原文地址:https://www.cnblogs.com/e0yu/p/10118699.html
Copyright © 2011-2022 走看看