laravel中角色与权限的管理
1、页面
代码:
<div class="contain" style="width: 84%;" id="contain"> <h2 style="padding:0;margin:0;font-size:28px;letter-spacing:4px;">角色列表</h2> <table class="table table-hover table-condensed table-responsive" id="table"> <thead> <tr> <th>id</th> <th>角色名</th> <th style="padding-left: 30px;">操作</th> </tr> </thead> <tbody> @foreach ($roles as $role) <tr> <td>{{ $role->id }}</td> <td>{{ $role->name }}</td> <td> <a style="font-size: 15px;" type="submit" href="{{ url("role/".$role->id."/edit") }}" class="btn">权限</a> <a style="font-size: 15px;" type="submit" class="btn" onclick="delPri({{ $role->id }})">删除</a> </td> </tr> @endforeach </tbody> <div style="float:right;margin-top:-30px;margin-right:100px;height:70px;" id="pagination"> {{ $roles->render() }} <div style="float:right;letter-spacing: 2px;margin-left:20px;" class="pagi__count"> 共<b>{{ $count }}</b>条数据</div> </div> </table> </div>
2、权限按钮的控制器
public function edit($role_id) { $role = Role::find($role_id); $my_privileges = Role::find($role_id)->privileges; $privileges = Privilege::all(); return view("role.edit", compact("role", "my_privileges", "privileges")); }
3、权限页面
代码:
<form action="{{ url("role/".$role->id) }}" method="post"> {{ csrf_field() }} {{ method_field("put") }} @foreach ($privileges as $privilege) <div class="form-group"> <label for=""><input type="checkbox" name="privileges[]" value="{{ $privilege->id }}" @if ($my_privileges->contains($privilege)) checked @endif> {{ $privilege->name }}</label> </div> // 判断若有这个权限就选中 @endforeach <button type="submit" class="btn btn-primary">提交</button> </form>
4、提交后的修改实现
public function update(Request $request, $role_id) { $role = Role::find($role_id); $request = $request->except("_token", "put"); $my_privileges = Role::find($role_id)->privileges; $privileges = Privilege::findMany($request["privileges"]); // 要增加的 $addPrivileges = $privileges->diff($my_privileges); foreach ($addPrivileges as $addPrivilege) { $role->grantPrivileges($addPrivilege); // 模型中的方法 } // 要删除的 $delePrivileges = $my_privileges->diff($privileges); foreach ($delePrivileges as $delePrivilege) { $role->deletePrivileges($delePrivilege); // 模型中的方法 } return back(); }5、模型中的实现
// 给角色赋予权限 public function grantPrivileges($privilege) { return $this->privileges()->save($privilege); } // 取消角色赋予的权限 public function deletePrivileges($privilege) { return $this->privileges()->detach($privilege); }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: laravel entrust 权限管理
- 下一篇: 允许交换两个数(一对)的位置 求最大子数组和