【问题标题】:How to assign Middleware to Routes in Laravel (better way)? [closed]如何将中间件分配给 Laravel 中的路由(更好的方法)? [关闭]
【发布时间】:2016-10-28 14:15:19
【问题描述】:

我想在这里发表您的意见,或者您在 Laravel 中将中间件分配给路由的最佳实践。我已经阅读了 3 种方法:

  • 数组(单个和多个)

    Route::get('/',['middlware' => 'auth', function () { // Code goes here }]);

    Route::get('/', ['middleware' => ['first', 'second'], function () { // }]);

  • 链式方法

    Route::get('/', function () { // })->middleware(['first', 'second']);

  • 完全限定的类名

    use App\Http\Middleware\FooMiddleware; Route::get('admin/profile', ['middleware' => FooMiddleware::class, function () { // }]);

我只想知道你知道的最佳实践是什么,如果可能的话,添加一些参考,以便我们新手更容易理解。任何答案将不胜感激。

【问题讨论】:

  • 好问题,但恐怕不适合 StackoOverflow。也许你会遇到麻烦,例如Laracasts 论坛或 laravel.io?
  • 当我在寻找类似的问题时,是否有重复的可能性。我一个都没看到感谢您的评论。乔尔
  • 我会尝试在上述论坛中找到它。
  • 前两种方法之一(数组或链式)。

标签: php laravel routes frameworks middleware


【解决方案1】:

从我的角度来看,我更喜欢 chain 方法 将中间件分配给任何路由,因为它看起来非常干净和容易。即,

Route::get('/', function () {
        //
})->middleware(['first', 'second']);

【讨论】:

    【解决方案2】:

    从我的角度来看,所有版本都还可以,我想不出一个比另一个有什么优势。我喜欢这样分组。

    Route::group(['middleware' => 'auth'], function () {
    
        Route::get('/home', [
            'as' => 'home',
            'uses' => 'Dashboard\DashboardController@dashboard'
        ]);  
    
        Route::pattern('users', '\d+');
        Route::resource('users','UserController'); 
    
       // more route definitions
    
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-17
      • 2016-10-20
      • 2016-05-29
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      相关资源
      最近更新 更多