多个可选参数不适用于laravel 5.3路由

时间:2018-01-15 07:37:06

标签: php laravel routes laravel-5.3

我在web.php中有以下路由,第一条路线始终有效,但第二条路线没有,如果我使用的网址如

ads/mobiles

然后函数check_if_category执行正常。但我使用网址

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');

但没有成功。提前感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

您需要在这些参数之间添加var json=response.facility_list; for( var n in json ){ var obj=json[n]; var id=obj.facility_id; var name=obj.name; var cat=obj.facility_category; var tr_str = "<li class='pointer' data-category='"+cat+"' id='" + (n+1) + "' onclick='changeClass(this.id)'><a>" + name +"</a></li>"; $("#tabAjax").append( tr_str ); } ,否则Laravel会将这些参数视为一个长字符串。

/

答案 1 :(得分:2)

Route::get('ads/{location?}/{category?}/{keyword?}', 'Categories@check_if_category')->name('route_f_category_page'); 添加到路径URI:

/

答案 2 :(得分:1)

使用leave_approver

separator