猿问

路由中的中间件和控制器构造函数中的中间件有什么区别?

我对 laravel 很陌生,想深入了解中间件。我想知道将中间件与路由附加或在控制器的构造函数中添加中间件之间的主要区别是什么。

例如,它是名为的控制器的构造函数UserController


public function __construct() {

  $this->middleware('age');

}

让我们假设它是同一个控制器的路由,即UserController


Route::get('user/profile', function () {

    //

})->middleware('age');

我的主要问题是,我应该在路由和控制器的构造函数中添加中间件还是只在其中一个中添加中间件?


白猪掌柜的
浏览 113回答 2
2回答

PIPIONE

两者都将执行相同的任务,只是您可以用两种不同的方式编写。However, it is more convenient to specify middleware within your controller's constructor. Using the middleware method from your controller's constructor, you may easily assign middleware to the controller's action. You may even restrict the middleware to only certain methods on the controller class.https://laracasts.com/discuss/channels/laravel/middleware-in-controller-or-on-route

繁花如伊

public function __construct() {  $this->middleware('age');}```````````````````````````````````````````````````````````````````````````````Global middlewares are those that will be running during every HTTP request of your application. In the $middleware property of your app/Http/Kernel.php class, you can list all the global middleware for your project.```````````````````````````````````````````````````````````````````````Route::get('user/profile', function () {    //})->middleware('age');````````````````````````````````````````````````````````````````````````When you want middlewares to specific routes, you have to add the middleware with a key for your app/Http/Kernel.php file and such middlewares are called route middleware. $routeMiddleware by default holds entries for the middleware that are already incorporated in Laravel. For adding your custom middleware, you need to append them to the list and add a key of your choice[link]https://www.w3schools.in/laravel-tutorial/middleware/  
随时随地看视频慕课网APP
我要回答