2013-10-26 4 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 вы фактически объявляя RESTful контроллер с таблицей действий будет обрабатываться Laravel автоматически. Вы используете его неправильно.

См docs, чтобы увидеть, какие маршруты обрабатываются в фоновом режиме (и, следовательно, источником конфликта):

Посмотрите на таблицу под названием Действия обращанный Controller Resource

Для любого обработчик маршрута, который не входит в таблицу, вам придется объявлять отдельные маршруты. Что-то вроде:

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

В качестве резюме, Route::resource позволяет вам быстро CRUD RESTful доступа.

Смежные вопросы