Удаление ключевого слова / profile / from / profile / {username} из Route Web.php не работает - PullRequest
0 голосов
/ 29 июня 2019

У меня есть маршрут

Route::get('/{username}', 'ProfileController@profile')->name('profile.view');

Если я буду держать его в середине файла, весь маршрут после этого не будет работать.

Если я буду держать это в нижней части, то все работает.

Кроме того, если я добавлю какую-либо работу, например, профиль, она будет работать.

Route::get('profile/{username}', 'ProfileController@profile')->name('profile.view');

Как это решить?

1 Ответ

1 голос
/ 29 июня 2019

Так должно работать, когда вы используете подстановочный знак, чтобы соответствовать всему.Поэтому, если вы поместите его в конец файла, и он будет использоваться в качестве запасного маршрута, что означает, что ничто над ним не должно совпадать, тогда он откатится к этому маршруту.Или вы можете использовать регулярное выражение, чтобы сопоставить имя пользователя с чем-то, что отличает его от других маршрутов, например:

Route::get('{username}', 'ProfileController@profile')
    ->name('profile.view')
    ->where('username', 'YOUR REGEX HERE');

Я бы выбрал тот, который вы показали, и он уже работает:

Route::get('profile/{username}', 'ProfileController@profile')
    ->name('profile.view');

// or
Route::get('user/{username}', 'ProfileController@profile')
    ->name('profile.view');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...