2014-05-21 7 views
0

Я использую Laravel 4, я пытаюсь создать cms-страницы, на которых выглядят URL-адреса: domain.tld/en/how-it-works. они создаются с использованием backoffice, и я извлекаю его с помощью slug how-it-works и текущего языка. Проблема в том, что если я хочу получить доступ к domain.tld/login (это статическая страница), он показывает мне 404 страницу, конечно, потому что эта страница не найдена в базе данных. Поэтому я ищу решение, которое смотрит на другие маршруты, если данный слизень не найден.Маршрутизация Remap Laravel 4

Пожалуйста, помогите.

И извините за мой английский.

Это мой routes.php файл

$languages = array('fr', 'en'); 
$locale = Request::segment(1); 
if(in_array($locale, $languages)){ 
\App::setLocale($locale); 
}else{ 
$locale = null; 
} 

Route::group(array('prefix' => $locale), function() 
{ 


    Route::get('/', array('before' => 'loginCookie', 'uses' => '[email protected]', 'as' => '/')); 

Route::get('{slug}',array('uses' => '[email protected]', 'as' => 'articles.show')); 

    Route::group(array('prefix' => 'login'), function() { 
     Route::get('/', array('before' => 'guest', 'after' => 'reflashPool', 'uses' => '[email protected]')); 
     Route::post('/',array('before' => 'guest|csrf','after' => 'reflashPool', 'uses' => '[email protected]')); 
     Route::get('remind-password',array('uses' => '[email protected]')); 
     Route::post('remind-password','[email protected]'); 
     Route::get('reset-password/{token}','[email protected]'); 
     Route::post('reset-password','[email protected]'); 
    }); 
+0

опубликовать свой файл маршруты? – Laurence

+0

Я только что добавил :) –

ответ

1

Чтобы быть как можно быстрее, процесс Laravel маршруты в порядке их написания и первый, который отвечает требованием является один он выбирает.

Таким образом, вы просто должны сделать свой самый общий маршрут последний один:

Route::group(array('prefix' => $locale), function() 
{ 

    Route::get('/', array('before' => 'loginCookie', 'uses' => '[email protected]', 'as' => '/')); 

    Route::group(array('prefix' => 'login'), function() { 
     Route::get('/', array('before' => 'guest', 'after' => 'reflashPool', 'uses' => '[email protected]')); 
     Route::post('/',array('before' => 'guest|csrf','after' => 'reflashPool', 'uses' => '[email protected]')); 
     Route::get('remind-password',array('uses' => '[email protected]')); 
     Route::post('remind-password','[email protected]'); 
     Route::get('reset-password/{token}','[email protected]'); 
     Route::post('reset-password','[email protected]'); 
    }); 

    Route::get('{slug}',array('uses' => '[email protected]', 'as' => 'articles.show')); 

}); 
+0

oh Спасибо, его работы :) –

+0

У меня вопрос, предполагая, что я использую две таблицы (два контроллера), если первый не удалось, как я могу выполнить поиск во втором. ? –

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