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

Mr.*_*own 5 php frameworks middleware routes laravel

我想在这里提供您的意见,或者您在 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 () { // }]);

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

小智 11

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

Route::get('/', function () {
        //
})->middleware(['first', 'second']);
Run Code Online (Sandbox Code Playgroud)


her*_*h42 6

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

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

});
Run Code Online (Sandbox Code Playgroud)