laravel8.5与layuiadmin整合(8)
38.开发角色和权限功能,大部功能,与上面的系统用户增删改查类似
开发角色,在路由文件中
/routes/web.php
添加
// 角色管理 Route::group(['prefix' => 'admin','middleware'=>['auth']],function() { // 展示角色列表 Route::get('role',[App\Http\Controllers\Admin\RoleController::class,'index']) ->name('admin.role'); // 获取角色数据 Route::get('role/data',[App\Http\Controllers\Admin\RoleController::class,'data']) ->name('admin.role.data'); // 添加角色 Route::get('role/create',[App\Http\Controllers\Admin\RoleController::class,'create']) ->name('admin.role.create'); // 保存添加的角色 Route::post('role/store',[App\Http\Controllers\Admin\RoleController::class,'store']) ->name('admin.role.store'); //编辑角色 Route::get('role/{id}/edit',[App\Http\Controllers\Admin\RoleController::class,'edit']) ->name('admin.role.edit'); // 保存编辑 Route::put('role/{id}/update',[App\Http\Controllers\Admin\RoleController::class,'update']) ->name('admin.role.update'); //修改角色的拥有的权限 Route::get('role/{id}/permission',[App\Http\Controllers\Admin\RoleController::class,'permission']) ->name('admin.role.permission'); // 保存角色修改的权限 Route::put('role/{id}/assignPermission',[App\Http\Controllers\Admin\RoleController::class,'assignPermission']) ->name('admin.role.assignPermission'); });
39. 在 /resources/views/admin/layout.blade.php修改
角色管理
为
角色管理
40.建立角色控制器
/app/Http/Controllers/Admin/RoleController.php
namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Spatie\Permission\Models\Role; class RoleController extends Controller { /** * 显示角色列表 * @return \Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View */ public function index() { return view('admin.role.index'); } /** * 添加创建新角色 * @return \Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View */ public function create() { return view('admin.role.create'); } }
41.分别添加以上的模板文件
/resources/views/admin/role/index.blade.php
@extends('admin.base') @section('content')class="layui-card">@endsection @section('script') @endsection /resources/views/admin/role_form.blade.php {{csrf_field()}}class="layui-card-header layuiadmin-card-header-auto">class="layui-btn-group"> class="layui-btn layui-btn-sm" href="{{ route('admin.role.create') }}">添 加class="layui-card-body">
class="layui-form-item">class="layui-input-block"> class="layui-input" type="text" name="name" lay-verify="required" value="{{$role->name??old('name')}}" placeholder="如:admin">class="layui-form-item">/resources/views/admin/role/create.blade.php @extends('admin.base') @section('content')class="layui-input-block"> class="layui-btn" >返 回class="layui-card">@endsectionclass="layui-card-header layuiadmin-card-header-auto">添加角色
class="layui-card-body">
42.控制器添加获取数据方法
/app/Http/Controllers/Admin/RoleController.php
/** * 获取角色内容 * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function data(Request $request) { $sql = "select * from roles"; $sqlCount = "select count(*) as total from roles"; $page = 1; $pagesize = 10; if($request->get('page')){ $page = intval($request->get('page')); if($page < 1){ $page = 1; } } if($request->get('limit')){ $pagesize = $request->get('limit'); if($pagesize < 1) { $pagesize = 10; } } $start_num = ($page - 1) * $pagesize; $sql .= " limit {$start_num},{$pagesize}"; $listResult= DB::select($sql); $totalCount= DB::selectOne($sqlCount); $listData = []; foreach ($listResult as $data_row) { $listData[] = $data_row; } $data = [ 'code' => 0, 'msg' => '正在请求中...', 'count' => $totalCount->total, 'data' => $listData ]; return response()->json($data); }
此时角色浏览,添加了