在我的应用程序中,我有三个用户角色:
当编辑器登录管理部分时,某些部分是隐藏的(用户管理、系统信息等),当然,管理员可以看到所有内容。
因此,为此我创建了两个中间件:Admin 和 Editor。这是代码。
管理中间件。
<?php
namespace App\Http\Middleware;
use Illuminate\Support\Facades\Auth;
use Closure;
class Admin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(Auth::check()) {
if(Auth::user()->role_id == 3) {
return $next($request);
}
}
return redirect('/');
}
}
Run Code Online (Sandbox Code Playgroud)
编辑器中间件:
<?php
namespace App\Http\Middleware;
use Illuminate\Support\Facades\Auth;
use Closure;
class Editor
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request …Run Code Online (Sandbox Code Playgroud) 我正在使用HTML表单,而不是Laravel Collective.
现在我已成功为我的CMS中的用户创建了一个CRUD,但有一件事困扰我:
如何在用户列表中设置"删除"按钮,而不是特定的编辑页面?
此外,当用户单击"删除"按钮以显示用于删除特定用户的确认弹出窗口时,这将是很好的.
所以,这是我的代码:
控制器:
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$user = User::findOrFail($id);
$user->delete();
return redirect('/admin/users');
}
Run Code Online (Sandbox Code Playgroud)
用户列表页面:
@extends('layouts.backend')
@section('content')
<h1>Users</h1>
<a class="btn btn-primary" href="/admin/users/create">Create new user</a>
<table class="table">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Email</th>
<th>Role</th>
<th>Status</th>
<th>Created</th>
<th>Updated</th>
<th>Operations</th>
</tr>
</thead>
<tbody>
@if($users)
@foreach($users as $user)
<tr>
<td>{{$user->id}}</td>
<td>{{$user->name}}</td>
<td>{{$user->email}}</td>
<td>{{$user->role ? $user->role->name : 'User has no role'}}</td>
<td>{{$user->status == 1 ? …Run Code Online (Sandbox Code Playgroud)