我正在我的个人项目中设置“控制访问”,以实现学习了如何使用中间件来控制谁可以访问什么的方式,但是我学到的方法看起来并不是最好的方式。
我要做的是为每种类型的用户(管理员,主持人,用户等)创建一个独特的中间件,但是对我来说,这太简单了。我在控制台中为每个人做到了
php artisan make:middleware isAdmin
php artisan make:middleware isModerator
php artisan make:middleware <...>
在修改了中间件之后,我必须修改 app / Http / Kernel.php 文件以使用它:
protected $routeMiddleware = [
<...>,
'is_admin' => \App\Http\Middleware\isAdmin::class,
'is_mod' => \App\Http\Middleware\isModerator::class,
];
然后我修改了我的路线(这只是一个例子):
Route::get('/dashboard', function () {
return view('admin.dashboard');
})->middleware('auth')->middleware('is_admin');
Route::get('/home', function () {
return view('user.profile');
})->middleware('auth')->middleware('is_user');
所以我想说的是:还有另一种方法,而不必为项目中的每个“角色”创建中间件?将验证合并到一个文件中的一种方法,或者这是必须使每个文件负唯一责任的事情。