有两张表
cmp_role 权限 id
cmp_user 用户 role_id 关联cmp_role的id
role - user 一对多关系 反之 user - role 多对一关系
1、models 建立表关系
CmpRole.php
class CmpRole extends yiidbActiveRecord { public static function model($className=__CLASS__) { return parent::model($className); } /** * {@inheritdoc} */ public static function tableName() { return 'cmp_role'; } //第一个参数 关联表 表名 第二个参数1 关联表 字段 参数2为主表 ID public function getCmpUser(){ return $this->hasMany(CmpUser::className(), ['role_id'=>'id'])->asArray(); } }
CmpUser.php
class CmpUser extends yiidbActiveRecord { /** * {@inheritdoc} */ public static function tableName() { return 'cmp_user'; } //第一个参数 关联表 表名 第二个参数1 关联表 ID 参数2为主表 role_id 外键 public function getRole() { return $this->hasOne(CmpRole::className(),['id'=>'role_id'])->asArray(); } }
使用
// with()使用 参数 cmpUser 为 modules定义的方法 getCmpUser();区分大小写 $withDate = CmpRole::find()->with('cmpUser')->asArray()->all();
这样就能显示多表数据了