Symfony2如何在控制器中注入请求和获取路由参数

时间:2014-11-16 21:53:02

标签: php symfony dependency-injection request inject

我的控制器方法如下:

   /**
     * @Route("/film/{slugDe}", name="movie_De")
     */
    public function movieAction($slugDe)
    {

现在我需要使用请求绑定表单,但不会注入请求。如何注入请求并保留路由参数?

2 个答案:

答案 0 :(得分:4)

你可以从控制器中获得这样的请求......

$request = $this->get('request_stack')->getCurrentRequest();

编辑:

实际上,在考虑了这一点后,我认为马丁的答案可能是更好的选择。虽然以上是从控制器获取请求的完全有效的方法,但请求的类型提示可能是首选方法。如图所示,当您使用slugs时,仍然可以在控制器操作方法中为请求键入提示。

What is the best way to get the 'Request' object in the controller?

http://symfony.com/blog/new-in-symfony-2-4-the-request-stack

答案 1 :(得分:2)

你可以简单地注入这样的请求:

use Symfony\Component\HttpFoundation\Request;

public function movieAction($slugDe, Request $request)
{
    // ...

    $form->handleRequest($request);

    // ...
}

请参阅http://symfony.com/doc/current/book/controller.html#the-request-as-a-controller-argument