我创建了一个需要访问用户请求的服务,所以我在服务构造函数中使用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是否有特殊的自动装配功能?有可能吗?
提前致谢