2016-11-26 15 views
6

mỗi https://laravel.com/docs/5.3/routing#route-groups, tôi có thể thêm các auth middleware như sau:Thêm nhiều trung gian để định tuyến Laravel

Route::group(['middleware' => 'auth'], function() { 
    Route::get('/', function() { 
     // Uses Auth Middleware 
    }); 

    Route::get('user/profile', function() { 
     // Uses Auth Middleware 
    }); 
}); 

Tôi cũng thấy middleware thêm như sau:

Route::group(['middleware' => ['web']], function() { 
    // Uses all Middleware $middlewareGroups['web'] located in /app/Http/kernel.php? 
    Route::resource('blog','BlogController'); //Make a CRUD controller 
}); 

Làm thế nào tôi có thể làm cả hai ?

PS. Bất kỳ ý kiến ​​nào cung cấp thông tin chi tiết về những gì bốn dòng mã dưới cùng đang làm sẽ được đánh giá cao

Trả lời

7

Để gán phần mềm trung gian cho một tuyến đường, bạn có thể sử dụng phần mềm trung gian đơn (đoạn mã đầu tiên) hoặc nhóm trung gian (đoạn mã thứ hai). Với các nhóm phần mềm trung gian, bạn đang gán nhiều phần mềm trung gian cho một tuyến đường cùng một lúc. Bạn có thể tìm thêm thông tin chi tiết về các nhóm trung gian ở đây: https://laravel.com/docs/5.3/middleware#middleware-groups

Để sử dụng cả hai (đơn middleware & nhóm middleware), bạn có thể thử này:

Route::group(['middleware' => ['auth', 'web']], function() { 
    // uses 'auth' middleware plus all middleware from $middlewareGroups['web'] 
    Route::resource('blog','BlogController'); //Make a CRUD controller 
}); 
+0

Ah, vì vậy 'Route :: nhóm ([ 'middleware'= > ['web']], function() {}); 'và' Route :: group (['middleware' => 'web'], hàm() {}); 'thực hiện cùng chức năng? – user1032531

+0

Ngoài ra, do đó, đoạn mã đầu tiên không sử dụng phần mềm trung gian nhóm? Kịch bản lệnh bao gồm 'Route :: group (...);' vì vậy tôi sẽ áp dụng cho một nhóm. – user1032531

+3

1. Có 'Tuyến đường :: nhóm (['middleware' => ['web']], hàm() {});' và 'Tuyến đường :: nhóm (['middleware' => 'web'], hàm() {}); 'thực hiện giống nhau – krlv

Các vấn đề liên quan