如何将中间件分配给 Laravel 中的路由(更好的方法)? [关闭]

Posted

技术标签:

【中文标题】如何将中间件分配给 Laravel 中的路由(更好的方法)? [关闭]【英文标题】:How to assign Middleware to Routes in Laravel (better way)? [closed] 【发布时间】: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? 当我在寻找类似的问题时,是否有重复的可能性。我一个都没看到感谢您的评论。乔尔 我会尝试在上述论坛中找到它。 前两种方法之一(数组或链式)。 【参考方案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

);

【讨论】:

以上是关于如何将中间件分配给 Laravel 中的路由(更好的方法)? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 Laravel 中间件的执行顺序?

关于laravel5.5路由的一些问题,持续更新

Laravel - 如何通过路由组将变量传递给中间件?

laravel5.5路由

laravel 5.2 中特定路由的 web 中间件

自定义路由在 Laravel 中无法解析