Как обращаться с URL, который содержит тире в параметрах в Laravel - PullRequest
0 голосов
/ 25 июня 2019

Я определил маршруты следующим образом:

Route::get('busses-from-{from}-to-other-city', 'Controller@method_a')->name('route_name_one');
Route::get('busses-from-{from}-to-other-road', 'Controller@method')->name('route_name');

Все работает нормально, но когда я передаю значение {from} с черточками, это вызывает проблему.(404 Не Найдено).

Например, ссылка / URL abc.com/busses-from-SouthAfrica-to-other-city работает нормально, но когда я добавляю - в SouthAfrica, это вызывает проблему.Так что abc.com/busses-from-South-Africa-to-other-city вообще не работал.

{from} значение может содержать одно или несколько слов, поэтому я здесь и прошу решение этого вопроса.

Я знаю, что есть возможность добавить + или _ в URL, но это плохо для SEO, и SEO является наиболее важной частью этого проекта.

1 Ответ

3 голосов
/ 25 июня 2019

Вы должны установить ограничение для этого параметра, используя ->where(), чтобы включить тире.Таким образом, Laravel знает, как будет выглядеть этот параметр.

Route::get('busses-from-{from}-to-other-city', 'Controller@method_a')
    ->name('route_name_one')
    ->where('from', '[A-Za-z0-9-]+');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...