2015-02-25 21 views
44

Có thể thêm phần mềm trung gian vào tất cả hoặc một số mục của tài nguyên Tuyến đường không?Laravel 5 Tài nguyên tuyến đường + phần mềm trung gian

Nếu tôi có một cái gì đó như thế này

Route::resource('quotes','QuotesController'); 

Và sau đó muốn có thể làm cho tất cả các tuyến đường ngoài chỉ mục và chương trình sử dụng "auth" middleware. Hoặc là cái gì đó cần phải được thực hiện trong bộ điều khiển?

Trả lời

71

Trong QuotesController constructor sau đó bạn có thể sử dụng:

$this->middleware('auth', ['except' => ['index','show']]); 

tham khảo: Controller middleware in Laravel 5

+0

Cảm ơn! Không chắc chắn nếu đây là một cái gì đó có thể được thực hiện trong cuộc gọi tài nguyên nhưng không có vẻ là từ những gì tôi đã nhìn cho đến nay – kilrizzy

+0

Tôi cần phải vượt qua các đối số khác để Middleware, là nó có thể từ này? – activatedgeek

+0

@activatedgeek Nếu bạn có câu hỏi mới, hãy hỏi một số –

45

Bạn có thể sử dụng Route Nhóm kết hợp với Middleware khái niệm: http://laravel.com/docs/master/routing

Route::group(['middleware' => 'auth'], function() 
{ 
    Route::resource('todo', 'TodoController', ['only' => ['index']]); 
}); 
+2

khoảng một tuổi nhưng vì tôi đang cố gắng làm như vậy không nên là «Route :: resource ('todo', 'TodoController', ['except' = > ['index']]); 'để loại trừ chỉ mục từ phần mềm trung gian auth? –

0

Trong laravel 5.5 với php 7 nó đã không làm việc cho tôi với đa phương pháp loại trừ cho đến khi tôi đã viết

Route::group(['middleware' => 'auth:api'], function() { 

Route::resource('categories', 'CategoryController', ['except' => 'show,index']); 
}); 

có thể giúp người khác.

0

thử này

$ this-> middleware ('auth', [ 'trừ' => [ 'index', 'show']]);

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