• 分享一个自己写的基于TP的关系模型(三)


    这段时间对模型做了升级和优化,并将版本更新到TP3.2. 下载

    下载后请将目录放置TP的Library目录下

    1.数据节点优化,原来的节点为模型的名称或者表名,现在更新为定义关系的方法名

        public function test2(){
            return $this->hasOne('Test2','test1_id');
        }
    
        public function test3(){
            return $this->hasMany('Test3','test1_id');
        }

    如这里:原来返回数组的关系节点的名称为 Test2和Test3,那么现在为test2,test3

    关联节点:当使用关联查询后返回数组中关联表的键

    $test1 = D('Test1');
    $rs = $test1->with('test2')->select();

    如这段代码返回数组的结构应该是这样的

    [
       ['id' => 1,'name'=>'aaaa','test2'=>['id'=>1,'test1_id'=>1,'name'='test2']]   
    ]

    2.增加分页处理,TP原有的分页代码可能是这样的

        $User = M('User'); // 实例化User对象
        $count      = $User->where('status=1')->count();// 查询满足要求的总记录数
        $Page       = new ThinkPage($count,25);// 实例化分页类 传入总记录数和每页显示的记录数(25)
        $show       = $Page->show();// 分页显示输出
        // 进行分页数据查询 注意limit方法的参数要使用Page类的属性
        $list = $User->where('status=1')->order('create_time')->limit($Page->firstRow.','.$Page->listRows)->select();
        $this->assign('list',$list);// 赋值数据集
        $this->assign('page',$show);// 赋值分页输出
        $this->display(); // 输出模板

     那么现在可能是这样的

        $User = D('User'); // 实例化User对象
        $User->where('status=1')->order('create_time')->paginate();//默认显示20行
        $this->assign('list',$list);// 赋值数据集
        $this->display(); // 输出模板

    视图中输出分页

    {$list->show('输入您的分页的模板路劲')}
  • 相关阅读:
    L2 L3 L4
    C 语言assert使用
    VIM 命令收藏
    C++继承实例
    关于 WinScp 的一点使用经验
    Boa服务器移植
    Android 去掉标题全屏显示
    sys下gpio操作
    linux下 XGCOM串口助手的安装
    linux中inittab文件详解
  • 原文地址:https://www.cnblogs.com/xiaodo0/p/4611015.html
Copyright © 2020-2023  润新知