分享一个自己写的基于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('输入您的分页的模板路劲')}
原文地址:https://www.cnblogs.com/xiaodo0/p/4611015.html