权限编辑
路由
Route::middleware('auth')->group(function () {
.
.
.
// 编辑权限页面
Route::get('/permissions/{id}/edit', [PermissionController::class, 'edit'])->name('permissions.edit');
// 执行编辑权限
Route::post('/permissions/{id}', [PermissionController::class, 'update'])->name('permissions.update');
// 删除权限
Route::delete('/permissions', [PermissionController::class, 'destroy'])->name('permissions.destroy');
});
控制器 编辑功能
App/Http/Controllers/PermissionController.php
// 编辑权限
public function edit($id)
{
$permission = Permission::findOrFail($id);
return view('permissions.edit', compact('permission'));
}
// 执行编辑权限
public function update($id, Request $request)
{
$permission = Permission::findOrFail($id);
$validator = Validator::make($request->all(), [
'name' => 'required|min:3|unique:permissions,name,' . $id . ',id',
]);
if ($validator->passes()) {
$permission->name = $request->name;
$permission->save();
return redirect()->route('permissions.index')->with('success', '权限编辑成功~~');
} else {
return redirect()->route('permissions.edit',$id)->withErrors($validator)->withInput();
}
}
前端模版
resources/views/permissions/list.blade.php 添加跳转页路由
<a href="{{ route('permissions.edit',$permission->id) }}"
class="bg-slate-700 text-sm rounded-md text-white px-3 py-2 hover:bg-slate-600">编辑</a>
resources/views/permissions/edit.blade.php
<x-app-layout>
<x-slot name="header">
<div class="flex justify-between">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
权限 / 编辑
</h2>
<a href="{{ route('permissions.index') }}"
class="bg-slate-700 text-sm rounded-md text-white px-5 py-3">权限列表</a>
</div>
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white overflow-hidden shadow-sm sm:rounded-lg">
<div class="p-6 text-gray-900">
<form action="{{ route('permissions.update',$permission->id) }}" method="post">
@csrf
<div>
<label for="" class="text-sm font-medium">权限名称</label>
<div class="my-3">
<input value="{{old('name',$permission->name)}}" name="name" placeholder="权限名单"
type="text"
class="border-gray-300 shadow-sm w-1/2 rounded-lg">
@error('name')
<p class="text-red-400 font-medium">{{ $message }}</p>
@enderror
</div>
<button class="bg-slate-700 hover:bg-slate-600 text-sm rounded-md text-white px-5 py-3">
更新
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</x-app-layout>
控制器 删除功能
App/Http/Controllers/PermissionController.php
// 删除权限
public function destroy(Request $request)
{
$id = $request->id;
$permission = Permission::find($id);
if ($permission == null) {
session()->flash('error', '未找到权限~');
return response()->json([
'status' => false
]);
}
$permission->delete();
session()->flash('success', '权限删除成功~');
return response()->json([
'status' => true
]);
}
前端模版
resources/views/layouts/app.blade.php 添加 jQuery CDN链接
.
.
.
</body>
<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
@isset($script)
{{ $script }}
@endisset
</html>
resources/views/permissions/list.blade.php
<a href="javascript:void(0);" onclick="deletePermission( {{$permission->id}} )"
class="bg-red-600 text-sm rounded-md text-white px-3 py-2 hover:bg-red-500">删除</a>
以上:onclick="deletePermission( {{$permission->id}} )",删除按钮绑定。
- 开始书写ajax无刷新删除
.
.
.
</div>
<x-slot name="script">
<script type="text/javascript">
function deletePermission(id) {
if (confirm("您确定要删除么~~")) {
$.ajax({
url: '{{route('permissions.destroy')}}',
type: 'delete',
data: {id: id},
dataType: 'json',
headers: {
'x-csrf-token': '{{ csrf_token() }}'
},
success: function (response) {
window.location.href = '{{ route('permissions.index') }}';
}
});
}
}
</script>
</x-slot>
</x-app-layout>