私人领地

Thinkphp5 关联模型

必须建立两个模型分类模型(attr)、文章模型(article) 

attr模型

<?php
namespace app\common\model;
use think\Model;

class Attr extends Model{
  
  
}

 

article模型

1 <?php
2 namespace app\common\model;
3 use think\Model;
4 
5 class Article extends Model{
6 
7 }

 

hasOne(一对一关联)

 

关联查询

<?php
namespace app\common\model;
use think\Model;

class Attr extends Model{
    // 关联文章模型
    public function article()
    {
        //return $this->hasOne('article','pid','id','','INNER');
        return $this->hasOne('article','pid');
    }

    public function s(){
        $id = 19;
        $attr = $this->get($id);
        // 查询单条
        //$res = $attr->article()->find();
        // 查询多条
        $r = $attr->article;  // 打印出来数据(article+attr内容)
        $rr = $attr->article->parent->data;     // 打印attr内容
        $rrr = $attr->article->data;  // 打印出来article内容;

        $r = $this->toCollection($rrr);
        return $r;

    }

}

 

查询出来的是article内容(只有一条数据)。比如:一个用户,只有一份身份信息

关联保存

 

 

hasMany(一对多关联)

 1 <?php
 2 namespace app\common\model;
 3 use think\Model;
 4 
 5 class Attr extends Model{
 6     // 关联文章模型
 7     public function article()
 8     {
 9         return $this->hasMany('article','pid','id');
10         //return $this->hasOne('article','pid');
11     }
12     // 可用
13     public function s(){
14         $id = 9;
15         $attr = $this->get($id);
16         // 查询单条
17         //$res = $attr->article()->find();
18         // 查询多条
19         $res = $attr->article()->select();
20         return $res;
21 
22     }
23 
24 }

 

控制器调用

 1 <?php
 2 namespace app\index\controller;
 3 use think\Controller;
 4 use think\Model;
 5 class Index extends Controller
 6 {
 7     protected $model;
 8     public function _initialize()
 9     {
10         parent::_initialize(); // TODO: Change the autogenerated stub
11         $this->model = model('attr');
12     }
13 
14     public function index(){
15         $d = $this->model->s();
16         print_r($d);
17     }
18 
19    
20 
21 }

 

输出结果:只有article 内容(没有attr内容)。hasMany关联相当于Model('article')。一个用户可以看多本数

 

posted @ 2018-05-24 15:14  狂奔的蜗牛Snails  阅读(2569)  评论(0编辑  收藏  举报