63.建立上面对应的模板文件
/resources/views/admin/user/role.blade.php
@extends('admin.base') @section('content') <style> .layui-form-checkbox span{width: 100px} </style> <div class="layui-card"> <div class="layui-card-header layuiadmin-card-header-auto"> <h2>用户【{{$user->name}}】分配角色</h2> </div> <div class="layui-card-body"> <form class="layui-form" action="{{route('admin.user.assignRole',['id' => $user->id])}}" method="post"> {{csrf_field()}} {{method_field('put')}} <div class="layui-form-item"> <label for="" class="layui-form-label">角色</label> <div class="layui-input-block" style="width: 400px"> @forelse($roles as $role) <input type="checkbox" name="roles[]" value="{{$role->id}}" title="{{$role->name}}" {{ $role->own ? 'checked' : '' }} > @empty <div class="layui-form-mid layui-word-aux">还没有角色</div> @endforelse </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button type="submit" class="layui-btn" lay-submit="" lay-filter="formDemo">确 认</button> <a class="layui-btn" href="{{route('admin.user')}}" >返 回</a> </div> </div> </form> </div> </div> @endsection
赋予用户权限模板
/resources/views/admin/user/permission.blade.php
@extends('admin.base') @section('content') <style> .cate-box{margin-bottom: 15px;padding-bottom:10px;border-bottom: 1px solid #f0f0f0} .cate-box dt{margin-bottom: 10px;} .cate-box dt .cate-first{padding:10px 20px} .cate-box dd{padding:0 50px} .cate-box dd .cate-second{margin-bottom: 10px} .cate-box dd .cate-third{padding:0 40px;margin-bottom: 10px} </style> <div class="layui-card"> <div class="layui-card-header layuiadmin-card-header-auto"> <h2>用户 【{{$user->name}}】分配直接权限,直接权限与角色拥有的角色权限不冲突</h2> </div> <div class="layui-card-body"> <form action="{{route('admin.user.assignPermission',['id'=>$user->id])}}" method="post" class="layui-form"> {{csrf_field()}} {{method_field('put')}} @forelse($permissions as $first) <dl class="cate-box"> <dt> <div class="cate-first"><input id="menu{{$first['id']}}" type="checkbox" name="permissions[]" value="{{$first['id']}}" title="{{$first['display_name']}}" lay-skin="primary" {{$first['own']??''}} ></div> </dt> @if(isset($first['_child'])) @foreach($first['_child'] as $second) <dd> <div class="cate-second"><input id="menu{{$first['id']}}-{{$second['id']}}" type="checkbox" name="permissions[]" value="{{$second['id']}}" title="{{$second['display_name']}}" lay-skin="primary" {{$second['own']??''}}></div> @if(isset($second['_child'])) <div class="cate-third"> @foreach($second['_child'] as $thild) <input type="checkbox" id="menu{{$first['id']}}-{{$second['id']}}-{{$thild['id']}}" name="permissions[]" value="{{$thild['id']}}" title="{{$thild['display_name']}}" lay-skin="primary" {{$thild['own']??''}}> @endforeach </div> @endif </dd> @endforeach @endif </dl> @empty <div style="text-align: center;padding:20px 0;"> 无数据 </div> @endforelse <div class="layui-form-item"> <button type="submit" class="layui-btn" lay-submit="" >确 认</button> <a href="{{route('admin.user')}}" class="layui-btn" >返 回</a> </div> </form> </div> </div> @endsection @section('script') <script type="text/javascript"> layui.use(['form'],function () { var form = layui.form; form.on('checkbox', function (data) { var check = data.elem.checked;//是否选中 var checkId = data.elem.id;//当前操作的选项框 if (check) { //选中 var ids = checkId.split("-"); if (ids.length == 3) { //第三极菜单 //第三极菜单选中,则他的上级选中 $("#" + (ids[0] + '-' + ids[1])).prop("checked", true); $("#" + (ids[0])).prop("checked", true); } else if (ids.length == 2) { //第二季菜单 $("#" + (ids[0])).prop("checked", true); $("input[id*=" + ids[0] + '-' + ids[1] + "]").each(function (i, ele) { $(ele).prop("checked", true); }); } else { //第一季菜单不需要做处理 $("input[id*=" + ids[0] + "-]").each(function (i, ele) { $(ele).prop("checked", true); }); } } else { //取消选中 var ids = checkId.split("-"); if (ids.length == 2) { //第二极菜单 $("input[id*=" + ids[0] + '-' + ids[1] + "]").each(function (i, ele) { $(ele).prop("checked", false); }); } else if (ids.length == 1) { $("input[id*=" + ids[0] + "-]").each(function (i, ele) { $(ele).prop("checked", false); }); } } form.render(); }); }) </script> @endsection
以上则可以给用户分配角色和权限了
64.给各个功能,添加对应的权限
/routes/web.php 修改如下
// 系统管理 Route::group(['prefix' => 'admin','middleware' => ['auth','permission:system.manage']],function() { // 系统用户列表 // // });
65.添加中间件
/app/Http/Kernel.php
protected $routeMiddleware = [ // .... 'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class, 'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class, 'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class, ];
此时可以设置用户角色,权限,功能了