Laravel - 重定向到带有可选参数的路由

时间:2015-02-07 19:15:00

标签: php laravel routing routes

我有这条路线:

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
}

请注意,如果未选择某些参数

,则这些参数可以为空

1 个答案:

答案 0 :(得分:2)

这让我觉得问题是null值。您可以使用array_filter删除那些,然后将数据传递给重定向函数,而不是作为关联数组,而只是作为值传递(因此它们将按顺序解析,而不是按参数名称解​​析)

$data = Input::only('state', 'city', 'brand', 'model');
$data = array_filter($data); // remove falsy values
$data = array_values($data); // remove keys
return Redirect::route('search-cars', $data);
相关问题