【发布时间】:2015-02-07 19:14:59
【问题描述】:
我有这条路线:
Route::get('search/{state?}/{city?}/{brand?}/{model?}', array('as'=>'search-cars'), function($a=false, $b=false, $c=false, $d=false) {
// Do stuff
}
如何从控制器向上述路由发送参数?我试过了:
public function postHomeSearch() {
$state= (Input::get('state')) ? Input::get('state') : null;
$city = (Input::get('city')) ? Input::get('city') : null;
$brand= (Input::get('brand')) ? Input::get('brand') : null;
$model= (Input::get('model')) ? Input::get('model') : null;
$data = array(
'state' => $state,
'city' => $city,
'brand' => $make,
'model' => $model,
);
return Redirect::route('search-cars',$data); // <---- HERE
}
请注意,有些参数如果未选中,可能为空
【问题讨论】:
-
您的代码看起来不错。如果它为空,您是否尝试过不包括数组中的参数?另外,匹配函数签名上的参数名称。
-
这个解决方案有什么问题?
-
@facundofarias 和 lukasgeiter... 我在调用 postHomeSearch() 时得到这个 URL localhost/laravel/App/public/search///California///All -- 注意三重 ///
-
在我看来,一些
null值是问题所在。如果只设置了brand,你期望的 URL 是什么? -
@lukasgeiter 我希望 localhost/laravel/App/public/search/brandName 或者如果也设置了 city 则 localhost /laravel/App/public/search/brandName/City
标签: php laravel routing routes