将单个参数传递给路径组laravel 5.2

时间:2016-09-14 14:35:21

标签: php laravel

我目前在laravel 5.2中的一个相当大的网站上工作,我想在路由中间件中存储语言选择,这可以按预期工作。但是当我在组内设置路由控制器时,控制器获得两个变量而不是一个变量。语言和控制器的第二个变量如下所示。 有没有办法只将一个变量传递给控制器​​而不是两个?

//Routing: 
Route::group(['prefix' => '{language}',  'middleware' => ['info']], function()
{

    Route::get("template/{template}", 'TemplateController@getTemplate');
}


//Example method in controller: 
public function getTemplate($language, $template)
{

    return response($template);
}

//What i want in the controller.  
public function getTemplate($template)
{

    return response($template);
}

1 个答案:

答案 0 :(得分:2)

深入研究Illuminate\Routing\Route课程:

/**
 * Unset a parameter on the route if it is set.
 *
 * @param  string  $name
 * @return void
 */
public function forgetParameter($name)

您可以使用forgetParameter忘记参数。你可以用你的语言中间件来调用它。

$request->route()->forgetParameter('language');

一旦忘记,参数将不会传递给控制器​​方法,只留下您的模板参数传递。