Мне нужно создать такие URL-адреса:
http://www.example.com/param1/param2/param3/.../paramN
на странице поиска пользователь ищет любые возможные варианты, поэтому сделать такой URL-адрес в Laravel будет следующим:
Route::get('{param1?}/{param2?}/{param3?}/.../{paramN?}', array( ... ) );
Есть ли другой путь? Или, может быть, передать /
как часть параметра, чтобы иметь это:
low_range-1000/high_range-5000/weight-2/height-4/red/
поэтому над строкой становится только один параметр для маршрутизации.
любая помощь?
ну, я нашел решение. просто чтобы сохранить время других.
Route::get('{param1}/{param2?}', array( ... ) )->where('param2', '.*');
для этих маршрутов параметр param1 является обязательным, а param2 как необязательный параметр, который может содержать любой символ, включает /
.
поэтому я могу передать low_range-1000/high_range-5000/weight-2/height-4/red/
как param2.
Я делаю что-то подобное в своих URL-адресах, однако я использую запятые для разделения параметров поиска и :
для разделения ключа: значение
low-range:1000,high-range:5000,weight:2,height:4,color:red
Выглядит чище, я думаю, и вам не нужно разрешать все в ваших URL-адресах или беспорядок с разрешением / параметром
PS, у которого слишком много / в URL-адресе, считается плохой практикой для целей SEO