我目前在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);
}
答案 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');
一旦忘记,参数将不会传递给控制器方法,只留下您的模板参数传递。