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

时间:2016-06-26 13:52:24

标签: php laravel routes frameworks middleware

我想在此处提供您的意见,或者也许您最着名的做法是将中间件分配给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 () { // }]);

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

2 个答案:

答案 0 :(得分:3)

从我的角度来看,我更喜欢链式方法将中间件分配给任何路由,因为它看起来如此干净和简单。即,

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

答案 1 :(得分:1)

从我的角度来看,所有版本都可以,我无法想到一个版本的优势。我喜欢这样分组。

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

});