首页 > 解决方案 > 如何将 $request 添加到构造方法中?

问题描述

我在这个类的构造方法中定义了 Request 。

/**
* @var Request
*/
protected $request;

public function __construct(Request $request)
{
    $this->request = $request;
}

现在,当我尝试在某些函数中检索帖子数据时:

public function postListsAction()
{
    dd($this->request->get("title"));
}

我收到以下错误:

无法自动连接服务“App\Controller\ListController”:方法“__construct()”的参数“$request”引用类“Symfony\Component\HttpFoundation\Request”,但不存在此类服务。

我该如何解决这个问题?

标签: phpsymfony4

解决方案


正如错误消息所说,您尝试注入的请求类未声明为服务。请改用 RequestStack:

namespace App\Newsletter;

use Symfony\Component\HttpFoundation\RequestStack;

class NewsletterManager
{
    protected $requestStack;

    public function __construct(RequestStack $requestStack)
    {
        $this->requestStack = $requestStack;
    }

    public function anyMethod()
    {
        $request = $this->requestStack->getCurrentRequest();
        // ... do something with the request
    }
}

问候


推荐阅读