要定义新的中间件,我们必须创建中间件类:
class AuthenticationMiddleware { //触发中间件时将执行此方法 public function handle ( $request, Closure $next ) { if ( ! Auth::user() ) { return redirect('login'); } return $next($request); } }
然后,我们必须注册中间件:如果中间件应绑定到应用程序的所有路由,则应将其添加到的中间件属性中app/Http/Kernel.php:
protected $middleware = [ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, \App\Http\Middleware\AuthenticationMiddleware::class ];
而如果我们只想将中间件关联到某些路由,则可以将其添加到 $routeMiddleware
//将中间件注册为“路由中间件”,并为其指定名称“ custom_auth” protected $routeMiddleware = [ 'custom_auth' => \App\Http\Middleware\AuthenticationMiddleware::class ];
然后将其绑定到单个路由,如下所示:
//将中间件绑定到admin_page路由,以便将其用于该路由 Route::get('admin_page', 'AdminController@index')->middleware('custom_auth');