今天给自己的一个项目做权限控制,使用的是最基本的RBAC( 基于角色的权限控制)

有两张表:一个是权限表   cs_pribilege   另一个就是角色表  cs_role  

显示权限的名称(这个是角色表  ,很好实现   pri_id_list是权限列表的id)

显示权限的名称(权限表)

显示权限的名称


现在需要做的一个功能就是如何在显示角色列表时候能够显示这个角色所拥有的的权限,不是以一组数字的样式显示出来,

比如:44,45,46    显示成:栏目管理,栏目添加,栏目删除  这样显示


我先在mysql的命令行试了一下:

显示权限的名称角色表

显示权限的名称

显示权限的名称权限表

显示权限的名称

要想实现这个功能,必须要将两张表联合起来

显示权限的名称第一次查询

显示权限的名称查询r表的所有字段,也就是角色表的所有字段,只查询p表中的pri_name(权限名) 

显示权限的名称

显示权限的名称


这个查询结果并不是想要的  仔细观察  pri_name 只是第二次查询中的每一个的第一个值(pri_name)


想要的效果应该是之前在上面的说过的那个效果


需要使用mysql中的一个函数   group_concat


显示权限的名称

显示权限的名称


结果出来



需要注意的是两个函数:一个是find_in_set   一个是   group_concat函数


相关文章: