2013-10-26 132 views
1

I'm使用laravel 4的CMS項目,i'm有一些問題,我的路線......Laravel4路由模式錯誤

這是我目前的路線

Route::get('/', '[email protected]'); 
Route::get('/logout', '[email protected]'); 
Route::resource('/login', 'UserController'); 
Route::resource('/user', '[email protected]'); 
Route::resource('/user/{route}', 'UserController'); 


// Routes that shows us the pages... 
Route::get('/{page}', '[email protected]'); 
Route::get('/{page}/{id}', '[email protected]'); 

爲了我的用戶路由我有一個自定義路由器,路由用戶信息,不是一個真正的問題。但是,所有這些都很好,但是當我嘗試導航到「/ test」時,它將鏈接到測試頁面,它給了我這個錯誤。

Route pattern "/user/{route}/{{route}}" cannot reference variable name "route" more than once. 

它涉及到路由器邏輯,我相當新laravel。有沒有辦法解決這個問題?這是用戶/路由和/路由通配符之間的衝突。

回答

7
Route::resource('/user', '[email protected]'); 
Route::resource('/user/{route}', 'UserController'); 

的問題是,你正在使用Route::resource申報路線,同時通過使用Route::resource你實際上是宣佈與待通過Laravel自動處理動作表一個RESTful控制器。您使用不正確。

docs,看看哪些航線在後臺進行處理(因而衝突的根源):

看看錶叫處理好操作通過資源控制器

對於任何路由處理程序不在表內,您將不得不聲明單獨的路由。喜歡的東西:

Route::get('foo/filter/{filterName}/{filterValue}', 
     array('as'=>'filteredroute','uses'=>'[email protected]')) 

作爲總結,Route::resource使您快速CRUD的RESTful訪問。