有没有一种方法可以减少中间件文件的数量?

时间:2019-10-15 15:47:25

标签: php laravel middleware laravel-6

我正在我的个人项目中设置“控制访问”,以实现学习了如何使用中间件来控制谁可以访问什么的方式,但是我学到的方法看起来并不是最好的方式。

我要做的是为每种类型的用户(管理员,主持人,用户等)创建一个独特的中间件,但是对我来说,这太简单了。我在控制台中为每个人做到了

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');

所以我想说的是:还有另一种方法,而不必为项目中的每个“角色”创建中间件?将验证合并到一个文件中的一种方法,或者这是必须使每个文件负唯一责任的事情。

0 个答案:

没有答案