# :-: 第一步控制器代码
~~~
//引入 权限列表
public function index(\app\admin\model\Privileges $privileges)
{
$privileges = $privileges->privilegestrey();
return view('',compact('privileges'));
}
~~~
# :-: 第二步首页展示代码
~~~
{include file='common/father_css'/}
<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>权限列表</h5>
<div class="ibox-tools" style="margin-top: -5px!important;">
<a href="{:url('admin/privileges/add')}"> <button class="btn btn-danger btn-sm">添加新权限</button></a>
</div>
</div>
<div class="ibox-content">
<div class="table-responsive">
<form name="myform" id="myform" method="post">
<table class="table table-striped">
<thead>
<tr>
<th>id</th>
<th>权限名称</th>
<th>权限模块</th>
<th>权限控制器</th>
<th>权限方法</th>
<th>创建时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{foreach $privileges as $v}
<tr>
<td>
{$v['id']}
</td>
<td> {if condition = "$v['level'] neq 0 "} |{/if}
<?php echo str_repeat('   -', $v['level']*4);?>
{$v['p_name']}</td>
<td>{$v['m_name']}</td>
<td>{$v['c_name']}</td>
<td>{$v['a_name']}</td>
<td>{$v['create_time']}</td>
<td>
<div class="layui-table-cell laytable-cell-1-0-10">
<a class="layui-btn layui-btn-xs" lay-event="edit" href="{:url('admin/privileges/edit',['id'=>$v['id']])}">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" onclick="del({$v.id})">删除</a>
</div>
</td>
</tr>
{/foreach}
</tbody>
</table>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 全局js -->
<script>
function del(id) {
swal({
title: "确定删除吗?",
text: "你将无法回复该用户,点击空白区,取消选框",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "确定删除!",
cancelButtonText: "取消删除!",
closeOnConfirm: false,
closeOnCancel: false
}).then(
function(isConfirm){
if (isConfirm) {
//或者id ,传递给后台
window.location.href = "/admin/privileges/delete/id/"+id
} else {
swal("取消!", "你的用户删除结束)",
"error");
}
});
}
</script>
</body>
</html>
~~~
# :-: 第一步 添加页面代码
~~~
//权限列表添加
public function add(\app\admin\model\Privileges $privileges)
{
$privileges = $privileges->privilegestrey();
return view('',compact('privileges'));
}
//权限列表处理
public function addSave(\app\admin\validate\Privileges $privileges,Request $request)
{
$data = $request->param();
if (\think\facade\Request::isPost()){
$info = $privileges->check($data);
if ($info){
$relus = model('privileges')->save($data);
if ($relus){
return $this->success('权限添加成功','/admin/privileges/index');
}
} else{
return $this->error($privileges->getError());
}
}
}
//模型里面递归重置数据
//获得排序
public function privilegestrey(){
//获得栏目所有数据
$data = Privileges::all();
//把获得栏目的数据放到下面处理
return $this->sort($data);
}
//递归处理排序
public function sort($data,$pid =0,$level = 0){
//定义一个静态数组
static $arr = [];
foreach($data as $v){
if ($pid == $v['pid']){
$v['level']=$level;
$arr[] = $v;
$this->sort($data,$v['id'],$level+1);
}
}
//获得一级id
return $arr;
}
~~~
# :-: 第二步添加页面Html 代码
~~~
{include file='common/father_css'/}
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>权限名称
<small class="text-danger">注意:权限名称不能重复,也不能为空</small>
</h5>
</div>
<div class="ibox-content">
<form method="post" class="form-horizontal layui-form" id="register"
action="{:url('admin/privileges/addSave')}">
<div class="form-group">
<label class="col-sm-2 control-label text-danger">*权限名称</label>
<div class="col-sm-10">
<input type="text" value="" name="p_name" class="form-control" required
placeholder="权限名称必须为中文">
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group">
<label class="col-sm-2 control-label text-danger">*权限模块</label>
<div class="col-sm-10">
<input type="text" value="" name="m_name" class="form-control" required placeholder="必须为英文">
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group">
<label class="col-sm-2 control-label text-danger">*权限控制器</label>
<div class="col-sm-10">
<input type="text" value="" name="c_name" class="form-control" required placeholder="必须为英文">
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group">
<label class="col-sm-2 control-label text-danger">*权限方法</label>
<div class="col-sm-10">
<input type="text" value="" name="a_name" class="form-control" required placeholder="必须为英文">
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="layui-form-item form-group">
<label class="col-sm-2 control-label">权限分类</label>
<div class=" col-sm-10">
<select name="pid" lay-filter="aihao">
<option value="0">顶级栏目</option>
{foreach $privileges as $v}
<option value="{$v->id}">
{if condition = "$v['level'] neq 0 "} |{/if}
<?php echo str_repeat('   -', $v['level']*4);?>
{$v->p_name}
</option>
{/foreach}
</select>
<div class="layui-unselect layui-form-select">
<div class="layui-select-title">
<input type="text" placeholder="请选择" value="顶级栏目" readonly=""
class="layui-input layui-unselect">
<i class="layui-edge"></i>
</div>
<dl class="layui-anim layui-anim-upbit"><
<dd lay-value="0" class="layui-this">顶级栏目</dd>
{foreach privileges as $v}
<dd lay-value="{$v->id}" class="">{$v->p_name}</dd>
{/foreach }
</dl>
</div>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group">
<div class="col-sm-4 col-sm-offset-2">
<button class="btn btn-primary layui-btn-radius" type="submit">添加权限</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<script>
layui.use('upload', function () {
var $ = layui.jquery
, upload = layui.upload;
//拖拽上传
upload.render({
elem: '#test10'
, url: '/admin/category/imgUpload'
, data: {}
//,drag:true //是否接受拖拽的文件上传,设置 false 可禁用。不支持ie8/9
//上传成功之后的回调
, done: function (res) {
let {code, data, msd} = res
if (code == 0) {
$('#test10').html(`<img src = "${data['src']}" width="50px" height="50px">
<input name="pic" type="hidden" value="${data['src']}"/>`)
} else {
swal({
text: res.message,
icon: "warning",
button: false
});
}
}
});
});
layui.use('layedit', function () {
var layedit = layui.layedit;
layedit.build('demo', {
//tool: ['left', 'center', 'right', '|', 'face'],//自定义 tollbar
height: 180 //设置编辑器高度
, uploadImage: {
url: "/admin/category/imgUpload",
type: 'post'
}
});
});
//表单清空
</script>
</body>
</html>
~~~
# :-: 第一步修改页面代码
~~~
public function edit($id,\app\admin\model\Privileges $privileges)
{
$privilegesd = $privileges->privilegestrey();
//清除自身
$privileges = $privileges->unset_edit($privilegesd,$id);
//获取就数据
$privilege = \app\admin\model\Privileges::where('id',$id)->find();
return view('',compact('privileges','privilege'));
}
//权限列表修改页面数据处理
public function update(Request $request)
{
$data = $request->param();
$id = $request->param('id');
$info = model('privileges')->where('id',$id)->data($data)->update();
if ($info){
$this->success('修改成功','/admin/privileges/index');
}
}
//删除自身 给修改用 写在模型当中
public function unset_edit($privilegesd,$id)
{
static $privilegs = [];
foreach($privilegesd as $v){
if ($v['id'] != $id){
$privilegs[] = $v;
}
}
return $privilegs;
}
~~~
# :-: 第二步修改页面处理
~~~
{include file='common/father_css'/}
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>权限名称
<small class="text-danger">注意:权限名称不能重复,也不能为空</small>
</h5>
</div>
<div class="ibox-content">
<form method="post" class="form-horizontal layui-form" id="register"
action="{:url('admin/privileges/update')}">
<div class="form-group">
<label class="col-sm-2 control-label text-danger">*权限名称</label>
<div class="col-sm-10">
<input type="text" value="{$privilege.p_name}" name="p_name" class="form-control" required
placeholder="权限名称必须为中文">
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group">
<label class="col-sm-2 control-label text-danger">*权限模块</label>
<div class="col-sm-10">
<input type="text" value="{$privilege.m_name}" name="m_name" class="form-control" required placeholder="必须为英文">
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group">
<label class="col-sm-2 control-label text-danger">*权限控制器</label>
<div class="col-sm-10">
<input type="text" value="{$privilege.c_name}" name="c_name" class="form-control" required placeholder="必须为英文">
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group">
<label class="col-sm-2 control-label text-danger">*权限方法</label>
<div class="col-sm-10">
<input type="text" value="{$privilege.a_name}" name="a_name" class="form-control" required placeholder="必须为英文">
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="layui-form-item form-group">
<label class="col-sm-2 control-label">权限分类</label>
<div class=" col-sm-10">
<select name="pid" lay-filter="aihao">
<option value="0">顶级栏目</option>
{foreach $privileges as $v}
<option value="{$v->id}"
{eq name="$privilege->pid" value="$v->id"} selected {/eq}
>
{if condition = "$v['level'] neq 0 "} |{/if}
<?php echo str_repeat('   -', $v['level']*4);?>
{$v->p_name}
</option>
{/foreach}
</select>
<div class="layui-unselect layui-form-select">
<div class="layui-select-title">
<input type="text" placeholder="请选择" value="顶级栏目" readonly=""
class="layui-input layui-unselect">
<i class="layui-edge"></i>
</div>
<dl class="layui-anim layui-anim-upbit"><
<dd lay-value="0" class="layui-this" >顶级栏目</dd>
{foreach privileges as $v}
<dd lay-value="{$v->id}" class="">{$v->p_name}</dd>
{/foreach }
</dl>
</div>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group">
<div class="col-sm-4 col-sm-offset-2">
<button class="btn btn-primary layui-btn-radius" type="submit">权限修改</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
<script>
layui.use('layedit', function(){
var layedit = layui.layedit;
layedit.build('demo', {
//tool: ['left', 'center', 'right', '|', 'face'],//自定义 tollbar
height: 180 //设置编辑器高度
, uploadImage: {
url: "/admin/category/imgUpload",
type: 'post'
}
});
});
//表单清空
</script>
~~~
# :-: 第一步删除代码
~~~
//权限列表删除
public function delete($id)
{
$info = \app\admin\model\Privileges::destroy($id);
if($info){
return $this->success('删除成功','/admin/privileges/index');
}
}
~~~
- Tp 框架5.1安装
- Tp 资源控制器创建跟非资源控制器
- Tp 自定义目录
- Tp 链接传参,地址栏获取参数
- Tp ajax 异步提交数据
- Tp 模型里面指定开启时间戳
- Tp加载验证码
- Tp 模版
- Tp 模版继承
- Tp模版页面If 条件 及session存储 取出
- Tp 默认在模版页面指定内容
- Tp 模版页面获取session
- Tp验证器
- Tp 自定义验证
- Thinkphp 模型验证规则使用
- Tp 文件上传
- Tp 实现注册自动登录
- Tp 编辑器
- Tp 结合 Markdown里面的editor编辑器
- Tp Marckdown 编辑模版输出
- Tp 搜索功能
- Tp 点赞 收藏
- Tp 基本权限
- Tp 创建验证器
- Sweetalert 弹出框 引用
- Tp 网站 开启 关闭功能
- Tp 网站 开启 注册功能
- Tq QQ登录
- Tp 邮箱注册 验证
- Tp 无限极分类
- Tp 路由
- Tp RBAC权限 适合于任何框架
- 创建权限模型,控制器,验证规则
- 创建角色 控制器 模型 验证规则
- 用户角色设置
- 权限验证
- Tp auth 权限
- 第一部 auth 安装
- 第二部 创建 三张数据库
- 第三部 创建用户控制器
- 第四部 创建规则表
- 规则表基本操作
- 1 规则页面加载
- 2 添加规则
- 3 编辑规则
- 4 删除规则
- 第五部 创建用户组
- 用户组基本操作
- 第一步 展示用户组首页
- 第二步 添加用户组
- 第三步 编辑用户组
- 第四部 删除用户组
- 第六步设置权限
- 第一步 创建 模型 控制器
- 第二步 首页显示
- 第三部 设置用户权限
- 第七步 执行权限认证
- 备注 附加规则原理
- Tp 数据库
- 外键约束
- Tp 结合layui 上传
- Layui 编辑器 前端展示
- Tp 模版eq
- Tp 删除
- Tp session 处理
- Tp cache缓存方法
- Tp 后台验证管理员登录
- 前台Nav 导航
- 左边导航
- Tp 批量删除
- O2O
- Tp框架插入数据自带时间戳
- Tp 结合layui 分页
- Tp 整合百度地图
- Tp 结合城市三级联动
- 密码验证
- 团购时间
- Tp模板时间修改
- 安卓App 平台入驻上线
- Api 接口返回
- Thinkphp 生成5.1二维码
- 回调Api
- layui 关闭框 刷新
- Layui 监听
- 判断是否是pc端 手机端
- Lauyi 自动转换时间
- Tp 增加时间
- ajax 同步 异步处理
- 弹出框
- 传输数据编辑
- 上传 引用 uploadify
- js 收缩
- Tp 增加数据表
- Tp-前置钩子
- 删除代码
- 适合tp5.0描述文字过长
- php 三级城市城市表带数据
- layu结合 tp table数据数组循环
- layui 解决数据为NUll 错误代码