以前听说过thinkphp关联模型效率比较低,但是一直没去看源代码,(现在也没看),今天写rbac的时候才感觉到
三个表及其相关字段如下:
user表,字段:id,nickname
role表,字段:id,remark
role_user表,user_id,role_id
将所有用户列出来,并显示其所在用户组:
一:使用thinkphp的关联模型
user关联模型代码:
'Role' => array(
'mapping_type' => MANY_TO_MANY,
'foreign_key' => 'user_id',
'relation_foreign_key'=>'role_id',
'relation_table'=>'role_user',
'mapping_fields'=>'remark',
)
控制器代码:
$model=D('User');
$userList=$model->relation(true)->where('status=1')->field('id,nickname'