# :-: 第一步控制器代碼
~~~
//引入 權限列表
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 錯誤代碼