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

前端 未结 2 1697
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-03 22:55

I have seen the request object being passed to the controller action method as a parameter like this:

public function addAddressAction(Request $request)
{
           


        
2条回答
  •  执笔经年
    2021-01-03 23:32

    If you take a deeper look at the Symfony2 Base Controller code, you may notice that getRequest() is marked as deprecated since version 2.4 and will be removed in 3.0.

    /*
     * ...
     * @deprecated Deprecated since version 2.4, to be removed in 3.0. Ask
     *             Symfony to inject the Request object into your controller
     *             method instead by type hinting it in the method's signature.
     */
    public function getRequest()
    {
        return $this->container->get('request_stack')->getCurrentRequest();
    }
    

    Introduced by the following evolution,

    • [FrameworkBundle] use the new request_stack service to get the Request object in the base Controller class.

    And, here's the upgrade from 2.x to 3.0 documentation.

    • Upgrade from 2.x to 3.0 - FrameworkBundle

    Conclusion,

    Your Request should then be part of your action's signature.

提交回复
热议问题