RequestStack不是由autowire在服务中传输的 - symfony 3.3.9

时间:2017-09-23 16:22:14

标签: symfony service request autowired symfony-3.3

我创建了一个需要访问用户请求的服务,所以我在服务构造函数中使用RequestStack,但即使autowire为true,我也没有收到RequestStack对象,而是取代了null。

以下是该服务的代码:

<?php

namespace AppBundle\Service\System;

use Symfony\Component\HttpFoundation\RequestStack;

class User
{
    protected $requestStack;

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

    public function getUser()
    {
        $request=$this->requestStack->getCurrentRequest();
        return true;
    }
}

新控制器调用服务的控制器代码:

<?php

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

use AppBundle\Service\System\User;

class DefaultController extends Controller
{
    /**
     * @Route("/", name="homepage")
     */
    public function indexAction(User $user)
    {
        $u=$user->getUser();
    }
}

在null上调用getCurrentRequest()时会出错。

RequestStack是否有特殊的自动装配功能?有可能吗?

提前致谢

0 个答案:

没有答案