必须建立两个模型分类模型(attr)、文章模型(article)
attr模型
<?php
namespace app\common\model;
use think\Model; class Attr extends Model{ }
article模型
<?php
namespace app\common\model;
use think\Model; class Article extends Model{ }
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(一对多关联)
<?php
namespace app\common\model;
use think\Model; class Attr extends Model{
// 关联文章模型
public function article()
{
return $this->hasMany('article','pid','id');
//return $this->hasOne('article','pid');
}
// 可用
public function s(){
$id = 9;
$attr = $this->get($id);
// 查询单条
//$res = $attr->article()->find();
// 查询多条
$res = $attr->article()->select();
return $res; } }
控制器调用
<?php
namespace app\index\controller;
use think\Controller;
use think\Model;
class Index extends Controller
{
protected $model;
public function _initialize()
{
parent::_initialize(); // TODO: Change the autogenerated stub
$this->model = model('attr');
} public function index(){
$d = $this->model->s();
print_r($d);
} }
输出结果:只有article 内容(没有attr内容)。hasMany关联相当于Model('article')。一个用户可以看多本数