【问题标题】:Symfony2 how to inject request and get route parameters in controllerSymfony2如何在控制器中注入请求并获取路由参数
【发布时间】:2015-01-13 18:17:21
【问题描述】:

我的控制器方法如下所示:

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

现在我需要用请求绑定一个表单,但是请求没有被注入。如何注入请求并保留路由参数?

【问题讨论】:

    标签: php symfony dependency-injection request inject


    【解决方案1】:

    您可以从控制器中获取这样的请求...

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

    编辑:

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

    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

    【讨论】:

      【解决方案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

      【讨论】:

        猜你喜欢
        • 2013-03-04
        • 2013-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-01
        • 1970-01-01
        • 2011-10-07
        • 1970-01-01
        相关资源
        最近更新 更多