多个可选参数不适用于 laravel 5.3 路由
Multiple optional parameters not working on laravel 5.3 route
我在 web.php 中有以下路线,第一条路线始终有效,但如果我使用 url 之类的
,第二条路线则无效
ads/mobiles
然后函数 check_if_category 执行正常。但我用 url 喜欢
ads/lahore/mobiles
在这种情况下,它会重定向到 404 页面。
Route::get('ads/all', 'AdControllerWithoutAuth@all_ads')->name('route_all_ads');
Route::get('ads/{location?}{category?}{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');
我也这样工作过
Route::get('ads/all', 'AdControllerWithoutAuth@all_ads')->name('route_all_ads');
//Route::get('ads/{location?}', 'Categories@check_if_category')->name('route_f_category_page');
//Route::get('ads/{location?}{category?}', 'Categories@check_if_category')->name('route_f_category_page');
Route::get('ads/{location?}{category?}{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');
但没有成功。提前感谢您的帮助。
使用separator
Route::get('ads/{location?}/{category?}/{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');
将 /
添加到路由 URI:
Route::get('ads/{location?}/{category?}/{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');
您需要在这些参数之间添加 /
否则 Laravel 会将它们视为一个长字符串。
Route::get('ads/{location?}/{category?}/{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');
我在 web.php 中有以下路线,第一条路线始终有效,但如果我使用 url 之类的
,第二条路线则无效ads/mobiles
然后函数 check_if_category 执行正常。但我用 url 喜欢
ads/lahore/mobiles
在这种情况下,它会重定向到 404 页面。
Route::get('ads/all', 'AdControllerWithoutAuth@all_ads')->name('route_all_ads');
Route::get('ads/{location?}{category?}{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');
我也这样工作过
Route::get('ads/all', 'AdControllerWithoutAuth@all_ads')->name('route_all_ads');
//Route::get('ads/{location?}', 'Categories@check_if_category')->name('route_f_category_page');
//Route::get('ads/{location?}{category?}', 'Categories@check_if_category')->name('route_f_category_page');
Route::get('ads/{location?}{category?}{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');
但没有成功。提前感谢您的帮助。
使用separator
Route::get('ads/{location?}/{category?}/{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');
将 /
添加到路由 URI:
Route::get('ads/{location?}/{category?}/{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');
您需要在这些参数之间添加 /
否则 Laravel 会将它们视为一个长字符串。
Route::get('ads/{location?}/{category?}/{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');