必须建立两个模型分类模型(attr)、文章模型(article)
attr模型
<?php namespace appcommonmodel; use thinkModel; class Attr extends Model{ }
article模型
1 <?php 2 namespace appcommonmodel; 3 use thinkModel; 4 5 class Article extends Model{ 6 7 }
hasOne(一对一关联)
关联查询
<?php namespace appcommonmodel; use thinkModel; 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 appcommonmodel; 3 use thinkModel; 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 appindexcontroller; 3 use thinkController; 4 use thinkModel; 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')。一个用户可以看多本数