thinkphp中的关联模型

##thinkphp模型介绍
在thinkphp中有三种模型

###普通模型
一般使用普通模型的时候我们是用来处理一个表的
通常使用的M(‘user’) (M当中的数据表只能小写)

###视图模型

###关联模型
如下为一个关联模型的文件

<?php
/**
 * 用户与角色关联模型
 */
class UserRelationModel extends RelationModel{
    //定义主表名称
    protected $tableName = 'user';

    //定义关联关系
    protected $_link = array(
        'role' => array(
            'mapping_type' => MANY_TO_MANY,//多对多关系,关联关系
            'foreign_key' => 'user_id',//主表在中间表中的字段名称
            'relation_key' => 'role_id',//副表在中间表中的字段名称
            'relation_table' => 'think_role_user',//中间表名称
            'mapping_fields' => 'id, name, remark',//只读取副表的这些字段
            )
        );
}
?>

读取主表

$user = D('UserRelation')->select()

读取主表和用户表

$user = D('UserRelation')->relation('role')->select();

读取主表中除了password之外的所有字段

$user = D('UserRelation')->field('password',true)->relation(true)->select();