【发布时间】:2015-09-15 16:00:04
【问题描述】:
我有一个获取当前登录用户的服务,它只在开发环境中的某些时间工作。
问题似乎是每当我更改 Twig 模板并刷新时都会出现错误:
Error: Call to a member function getUser() on null
如果我刷新页面,一切都会正常运行,直到我再次更新 Twig 模板。这显然使开发变得非常缓慢,因为我不断刷新页面。
到目前为止我做过的事情:-
- 已清除开发环境缓存。
- 已清除浏览器缓存。
- 确认用户确实已登录(否则不会 在第二次刷新时工作)
有没有人知道是什么导致了这个问题?
services.yml
myservice:
class: AppBundle\Services\MyService
arguments: ["@doctrine.orm.entity_manager", "@security.token_storage"]
MyService.php
<?php
namespace AppBundle\Services;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
class MyService
{
private $em;
private $token;
public function __construct($entityManager, TokenStorageInterface $tokenStorage)
{
$this->em = $entityManager;
$this->token = $tokenStorage->getToken();
}
public function doSomething()
{
$user_id = $this->token->getUser()->getID();
return;
}
}
树枝模板
{{ myservice.doSomething }}
注意: 这是仍然导致问题的基本代码
【问题讨论】:
-
您好,您找到问题的原因了吗?我也在经历。谢谢!
标签: symfony-2.6