我有一个简单的用户表,我通过在类型列中包含 1 来定义和管理该表。
我的中间件中有以下设置,但这仍然无法阻止非管理员访问仅管理区域。
中间件:
<?php
namespace App\Http\Middleware;
use Closure;
class Admin {
public function handle($request, Closure $next)
{
if (Auth::user()->isAdmin())
{
return redirect('home');
}
return $next($request);
}
}
内核:
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'admin' => App\Http\Middleware\Admin::class,
];
路线:
Route::group(['middleware' => 'auth', 'admin'], function () {
Route::get('admin/dashboard', 'AdminController@dashboard');
Route::get('admin/orders', 'AdminController@orders');
});
我的用户类中的函数:
public function isAdmin()
{
if (Auth::user()->type == '1')
{
return true;
}
else
{
return false;
}
}
最佳答案
您需要将多个中间件作为数组传递:
Route::group(['middleware' => ['auth', 'admin']]
关于php - Laravel 5.1 是管理员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36433738/