2015-05-10 5 views
2

В Laravel маршрутизации:Laravel маршруты для профилей пользователей? без/пользователя

Я хочу, чтобы в профиле пользователя с URL приятно: example.com/steve

На самом деле у меня есть: example.com/user/steve

Когда я делаю обновление маршрутизации это работает:

Route::get('{username}', ['as' => 'profile', 'uses' => '[email protected]']); 

Но когда я пытаюсь войти на другие маршруты (/ руководство):

Route::get('guide', ['as' => 'guide', 'uses' => '[email protected]']); 

Этот «крах» с профилем профилей пользователей. Как я могу сделать это без 404 ошибок?

Я хочу попробовать с другим методом, что "метод я" (положил письмо я перед всеми URL-адресов: Route :: получить ('I/руководство'))

ответ

-2
Route::group(['prefix' => 'i'], function() 
{ 
    Route::get('guide', function() 
    { 
     // Matches The "/i/guide" URL 
    }); 
}); 

Группа маршрутов и добавить префикс к ним

1

Вы должны сначала создать маршрут для руководства

Route::get('guide', ['as' => 'guide', 'uses' => '[email protected]']); 

, а затем для пользователя

Route::get('{username}', ['as' => 'profile', 'uses' => '[email protected]']); 

последовательность имеет значение в файле routes.php. Если маршрут {username} находится выше маршрута, то он будет рассматривать руководство как {username} и, следовательно, перенаправляет вас соответственно, но тогда у вас нет пользователя с руководством пользователя.

2

Laravel соответствует перечисленным маршрутам сверху донизу. Таким образом, \{username} будет соответствовать \{anyword}

Один из способов обхода этого;

На ваших маршрутах.php Route::get('guide', ['as' => 'guide', 'uses' => '[email protected]']); должен быть первым.

Пусть Route::get('{username}', ['as' => 'profile', 'uses' => '[email protected]']); будет размещаться после каждого другого маршрута

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