2014-02-05 69 views
6

我知道我能做到這一點Laravel 4,如何在路由應用濾鏡::控制器()

Route::get('foo/bar', array('before' => 'filter', 'uses' => '[email protected]')); 

申請路線的一些過濾器。我也知道Route :: group()方法。無論如何,如果我想以這種方式定義一個控制器

Route::controller('foo/{id}/bar', 'Controller'); 

我不能傳遞數組作爲第二個參數。

問題:如何將濾鏡應用到以下路線?

Route::controller('foo/{id}/bar', 'Controller'); 

===編輯

我想在我的route.php實現代碼,而不是一個控制器構造函數中。

回答

13

在控制器的constructor你可以使用

public function __construct() 
{ 
    $this->beforeFilter('auth'); 
} 

此外,您還可以使用

Route::group(array('before' => 'auth'), function() { 
    Route::controller(...); 
}); 
+1

路由分組,沒有路由前綴,並獲得成功。謝謝 – brazorf

+0

很高興幫助,歡迎:-) –

1

塊引用控制器方法接受兩個參數。第一個是控制器處理的基礎URI,第二個是控制器的類名。接下來,只需向您的控制器添加方法,並在其前面添加它們響應的HTTP動詞。

Route :: controller負責使用REST命名約定創建一組路由。被認爲是創建RESTFull服務。

大段引用的過濾器可以在控制器路由中指定類似於「常規」路線:

因爲此功能只允許兩個參數,你可以在構造應用控制器過濾器。例如:

class RoutedController extends Controller 
{ 
    public function __construct() 
    { 
     //Apply Auth filter to all controller methods 
     $this->filter('before', 'auth'); 
    } 
} 

你可以閱讀有關在Laravel文檔控制器過濾器:http://laravel.com/docs/controllers#controller-filters