为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
白猪掌柜的 2022-06-11 18:06:34
我对 laravel 很陌生,想深入了解中间件。我想知道将中间件与路由附加或在控制器的构造函数中添加中间件之间的主要区别是什么。例如,它是名为的控制器的构造函数UserControllerpublic function __construct() {  $this->middleware('age');}让我们假设它是同一个控制器的路由,即UserControllerRoute::get('user/profile', function () {    //})->middleware('age');我的主要问题是,我应该在路由和控制器的构造函数中添加中间件还是只在其中一个中添加中间件?
查看完整描述

2 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

两者都将执行相同的任务,只是您可以用两种不同的方式编写。

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


查看完整回答
反对 回复 2022-06-11
?
繁花如伊

TA贡献2012条经验 获得超12个赞

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/  


查看完整回答
反对 回复 2022-06-11
  • 2 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信