2016-09-14 105 views
1

我目前正在laravel 5.2的一個相當大的網站上工作,並且我想將選擇的語言存儲在路由中間件內,這可按預期工作。但是當我在組內設置一個路由控制器時,控制器得到兩個變量而不是一個。語言和控制器的第二個變量,如下所示。 有什麼辦法只將一個變量傳遞給控制器​​而不是兩個?將單個參數傳遞給路由組中的控制器laravel 5.2

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

    Route::get("template/{template}", '[email protected]'); 
} 


//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); 
} 

回答

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'); 

一旦忘記參數將不會傳遞給控制器​​方法,只留下您的模板參數傳遞。

相關問題