当前在我的路线文件中,我定义了以下路线:
Route::get('{country}/{county}/{city?}/{id}', 'AdsController@show')->name('show')->where('id', '[0-9]+');
在AdsController
中,我具有以下功能:
public function show($country, $region, $city = null, $id) {
if($city !== null)
echo "we do something here extra";
echo "Let's run our normal function";
}
唯一的问题是看来我必须传递$city
变量吗?例如,如果我访问http://example.com/mycountry/myregion/mycity/1
可以正常工作吗?但是如果我要运行http://example.com/mycountry/myregion/1
,它会显示 404 ,除了创建多条路线之外,他们是否仍在此周围?
答案 0 :(得分:2)
您将必须创建两条单独的路线。 Laravel不会将斜杠(/)解释为空变量。
您还可以在路由URI中传递零('0')值(例如:/ mycountry / myregion / 0/1)。
此外,您可以将可选的路线参数放在路线的末尾。这可能会有帮助。