[英]Laravel 5 Route variable has space
我在名为SearchController的控制器中有一些代码,并使用定义的一些变量将其重定向到路由。 当城市有两个词(例如:得梅因)时,city变量将删除空格并添加一个破折号。 那将返回“ des-moines”。 我这样做是因为在URL中它显示为“ des + monies”。 但是改变了之后。 该路线似乎不知道该怎么办或已中断。 因此,如何告诉路线{city}也可以是“ des-moines”之类的东西,而不是“ des + moines”。 还是有更好的方法来做到这一点。
我想要的网址(但会出错):
www.domain.com/des-moines-ia-provider1-50301
SearchController(简化版):
$city = strtolower(preg_replace('/\s+/', '-', $data[0]->City));
$state = strtolower($data[0]->State);
$provider = strtolower($data[0]->{'Provider Name'});
$zipcode = $data[0]->{'Zip Code'};
return redirect()->route('search.provider1',[$city,$state,$zipcode])->with('data',$data);
路线:
Route::get('{city}-{state}-provider1-{zipcode}',['uses' => 'PagesController@provider1','as' => 'search.provider1']);
错误:
NotFoundHttpException in RouteCollection.php line 161:
您可以做的是替换您的路线分隔符,该分隔符将不会在城市/州/邮政编码中使用。
也许:
Route::get('{city}/{state}/provider1/{zipcode}',['uses' => 'PagesController@provider1','as' => 'search.provider1']);
会更好? 我想/
不在城市/州和邮政编码中使用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.