我有一个管理员middlware AdminMiddleware.php
public function handle($request, Closure $next, $guard = null)
{
if(Auth::check())
{
if($request->user()->is_admin==1)
{
return $next($request);
}
return redirect('/login');
}
else
{
return redirect('/login');
}
}
我在adminmiddleware下有一些路由:
Route::group(['middleware' => ['App\Http\Middleware\Adminmiddleware']], function () {
//admin routes
});
正常工作。我对Registering middleware感到困惑?我为什么要注册。只为别名或更有效的东西?
答案 0 :(得分:3)
对于$routeMiddleware
和$middlewareGroups
,它们主要用于别名。正如您所提到的,您可以不注册它并在路径文件中使用它。
如果你需要交换实施,那就更方便了。
IMO,注册它,以便您可以在任何时间交换中间件实现,而无需进入您的路由配置文件来更改它 - 这比一个中心位置更改更容易出错。
答案 1 :(得分:2)
注册中间件会自动为每个请求加载类。您告诉Laravel加载并注册它,因此您可以在路由和控制器中使用它,而无需手动初始化它。与控制台命令,服务提供商等相同。您必须在使用它们之前注册。
如果您希望在对应用程序的每个HTTP请求期间运行中间件,只需在app / Http / Kernel.php类的$ middleware属性中列出中间件类。