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]