【问题标题】:Passing single paramter to controller inside route group laravel 5.2将单个参数传递给路由组laravel 5.2中的控制器
【发布时间】:2017-01-22 10:06:51
【问题描述】:

我目前正在使用 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);
}

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    深入了解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');
    

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

    【讨论】:

      猜你喜欢
      • 2016-05-16
      • 2017-01-12
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      相关资源
      最近更新 更多