ThinkPHP关联查询,关联查询,数据关联实例分析
今天在做ThinkPHP项目中的文章(article)模块时,运用到了thinkphp中的relation关联查询,
文章表里面的分类cate_id,查询文章的同时将分类category里的分类名name也查出
请看实例分析ThinkPHP的关联操作
目前的四种关联关系:
HAS_ONE、BELONGS_TO、HAS_MANY和MANY_TO_MANY。
[php]
class ArticleModel extends RelationModel{
protected $tableName = 'Article';
protected $_link = array(
'Category' => array(
'mapping_type' => BELONGS_TO,//article是category从表
'mapping_name'=>'Category',//关联的映射名称,用于获取数据用
'class_name'=>'Category',//要关联的模型类名
'mapping_fields'=>'id,name',//要查询的字段
'foreign_key'=>'cate_id',//article中与category相关联的字段
),
);
/**
* $type :CONF01 查询 select
* CONF02 查询 find
* CONF03 查询 count
**/
public function confselect($map=null,$relation=false,$field=null,$order=null,$limit=null,$type="CONF01"){
$list = null;
if(null!==$map){
$list = $this->where($map);
}
if(false!==$relation){
$list = $this->relation(true);
}
if(null!==$field){
$list = $this->field($field);
}
if(null!==$order){
$list = $this->order($order);
}
if(null!==$limit){
$list = $this->limit($limit[0],$limit[1]);
}
if($type=="CONF01"){
return $list = $this->select();
}elseif($type=="CONF02"){
return $list = $this->find();
}elseif($type=="CONF03"){
return $list = $this->count();
}else{
return false;
}
}
}
[/php]