角色权限,我们做任何网站几乎都是需要的,以下是一个简单的案例,大家可以参考下:思路: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中的错误及其处理机制 2023-06-04
- laravel ORM关联关系中的 with和whereHas用法 2023-03-02
- PHP获取MySQL执行sql语句的查询时间方法 2022-11-09
- laravel 解决多库下的DB::transaction()事务失效问题 2023-03-08
- PHP命名空间简单用法示例 2022-12-01
- 使用PHP开发留言板功能 2023-03-13
- 在Laravel中实现使用AJAX动态刷新部分页面 2023-03-02
- thinkphp3.2.3框架动态切换多数据库的方法分析 2023-03-19
- PHP实现Redis单据锁以及防止并发重复写入 2022-10-12
- php array分组,PHP中array数组的分组排序 2022-08-01