2013-12-22 83 views
2

我注意到,您在組內路由前綴中指定的參數也會提供給位於該特定組內的所有控制器,這是合理的。帶有前綴的Laravel組路由參數

例如:然後

Route::group(array('prefix' => 'team/{id}/{slug}', 'before' => 'auth'), function() { 
Route::get('documents/{document}', 'controllers\\team\\[email protected]'); 
}); 

的DocumentsController的表演方法必須遵循所有參數的順序:

show($id, $slug, $document)

不過,我並不真正需要的團隊ID和蛞蝓在DocumentsController中,它們只是用於漂亮的URLS。反正是有傳遞僅在DocumentsController該路由指定的參數(即不包括前綴PARAMS),具體如下:

show($document) 

回答

1

它擊中控制器之前,您可以解析路由模式。

您可以在boot()方法中執行此操作。

這是一個非常複雜的問題,但我可以給你一點指導。看看'Illuminate \ Routing \ Route',你應該看一下Route類中的函數setPattern()

+0

謝謝你的建議。目前我一直使用Route :: getCurrentRoute() - > getParameter('document'),但解析聲音更明智,因爲我在許多控制器中遇到了這個問題,所以我會給它一個鏡頭。 –