角色权限,我们做任何网站几乎都是需要的,以下是一个简单的案例,大家可以参考下:思路:1、创建三张表。管理员表,角色表(用于记录权限角色值),导航表(用于导航添加及遍历)2、登录成功之后, session 记录角
角色权限,我们做任何网站几乎都是需要的,以下是一个简单的案例,大家可以参考下:
思路:
1、创建三张表。
管理员表,角色表(用于记录权限角色值),导航表(用于导航添加及遍历)
2、登录成功之后, session 记录角色 groud_id ;
通过 groud_id 查询 groud 角色表 并session记录该角色权限值
3、公共控制器中用 mysql “ in“函数, 查询角色表,并匹对角色值,有权限的栏目就在导航中显示。
一、tp5权限功能,效果图:
管理员列表:
管理员添加功能:
角色表:
角色添加:
二、创建数据表:
1、管理员表:
CREATE TABLE `tp5_admin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(10) DEFAULT NULL COMMENT '账号',
`realname` varchar(10) DEFAULT NULL COMMENT '真实姓名',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
`password` varchar(35) DEFAULT NULL COMMENT '密码',
`img` varchar(255) DEFAULT NULL COMMENT '头像',
`addtime` varchar(11) DEFAULT NULL COMMENT '添加时间',
`updatetime` varchar(11) DEFAULT NULL COMMENT '修改时间',
`stop` int(2) DEFAULT '1' COMMENT '是/否启用(1启用,0不启用)',
`login_num` int(11) DEFAULT '0' COMMENT '登录次数',
`group_id` int(11) DEFAULT NULL COMMENT '权限组',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
2、导航表:
CREATE TABLE `tp5_nav` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL COMMENT '栏目名称',
`ac` varchar(255) DEFAULT NULL COMMENT '栏目方法',
`co` varchar(255) DEFAULT NULL,
`url` varchar(255) DEFAULT NULL COMMENT '栏目地址',
`sort` int(11) DEFAULT '0' COMMENT '排序',
`stop` int(2) DEFAULT '0' COMMENT '是/否启用',
`pid` int(11) DEFAULT NULL COMMENT '父id',
`type` int(11) DEFAULT NULL COMMENT '栏目类型',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
3、权限表:用于记录拥有的权限
CREATE TABLE `tp5_group` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL COMMENT '管理员级别',
`desc` varchar(255) DEFAULT NULL COMMENT '管理员描述',
`rule` varchar(255) DEFAULT NULL COMMENT '拥有权限',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
三、实现代码:
业务逻辑代码:
1、管理员列表
<div class="row">
<div class="col-xs-12 col-md-12">
<div class="widget">
<div class="widget-header ">
<span class="widget-caption">管理员管理</span>
<div class="widget-buttons">
<a href="#" data-toggle="maximize">
<i class="fa fa-expand"></i>
</a>
<a href="#" data-toggle="collapse">
<i class="fa fa-minus"></i>
</a>
</div>
</div>
<div class="widget-body">
<div class="table-toolbar">
<a id="editabledatatable_new" href="{:url('admin/Sys/magadd')}" class="btn btn-primary">
+添加管理员
</a>
</div>
<table class="table table-striped table-hover table-bordered" id="editabledatatable">
<thead>
<tr role="row">
<th>
ID
</th>
<th>
账号
</th>
<th>
真实姓名
</th>
<th>
角色
</th>
<th>
邮箱
</th>
<th>
头像
</th>
<th>
登录次数
</th>
<th>
添加时间
</th>
<th>
最近修改
</th>
<th>
状态
</th>
<th width="13%">
操作
</th>
</tr>
</thead>
<tbody>
{volist name="maglist" id="vo"}
<tr>
<td>{$vo.id}</td>
<td>{$vo.username}</td>
<td>{$vo.realname}</td>
<td class="center ">{$vo.name}</td>
<td class="center ">{$vo.email}</td>
<td class="center "><img src="{$vo.img}" alt="" width="50px;" height="50px;"></td>
<td class="center ">{$vo.login_num}</td>
<td class="center ">{$vo['addtime']|date='Y-m-d H:i:s',###}</td>
<td class="center ">{$vo['updatetime']|date='Y-m-d H:i:s',###}</td>
<td class="center ">
<label class="qd_btn_{$vo.id}">
{if condition="$vo.stop eq null"}
<input class="checkbox-slider slider-icon colored-success" type="checkbox" onclick="qdswt(this,{$vo.id});">
<span class="text"></span>
{else
沃梦达教程
本文标题为:tp5 auth 权限详解
猜你喜欢
- php微信公众号开发之秒杀 2022-11-23
- Laravel balde模板文件中判断数据为空方法 2023-08-30
- PHP实现微信支付(jsapi支付)流程步骤详解 2022-10-09
- PHP简单实现二维数组的矩阵转置操作示例 2022-10-02
- 用nohup命令实现PHP的多进程 2023-09-02
- windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境) 2023-09-02
- laravel实现按月或天或小时统计mysql数据的方法 2023-02-22
- PHP中PDO事务处理操作示例 2022-10-15
- PHP仿tp实现mvc框架基本设计思路与实现方法分析 2022-10-18
- laravel通用化的CURD的实现 2023-03-17