为什么我不能在symfony中修改当前用户实体?

为什么我不能在symfony中修改当前用户实体?,symfony,Symfony,我偶然发现symfony 2.6中关于当前用户的一些奇怪行为。我使用的是条令和mysql数据库。现在考虑这个例子: class StartController extends Controller { public function welcomeAction() { if ($this->getUser()) { $this->getUser()->setLastLogin(new \DateTime()); $this->g

我偶然发现symfony 2.6中关于当前用户的一些奇怪行为。我使用的是条令和mysql数据库。现在考虑这个例子:

class StartController extends Controller {
   public function welcomeAction() {
     if ($this->getUser()) {
       $this->getUser()->setLastLogin(new \DateTime());
       $this->get('doctrine')->getManager()->flush();
       ... some more code ...
尚未执行任何update语句。所以我修改了我的控制器如下:

class StartController extends Controller {
   public function welcomeAction() {
     if ($this->getUser()) {
       $managedUserEntity = $this->get('doctrine')
           ->getRepository('MyBundle:User')
           ->find($this->getUser()->getUuid());
       $managedUserEntity->setLastLogin(new \DateTime());
       $this->get('doctrine')->getManager()->flush();
       ... some more code ...

没什么。我可以加载、修改和更新每个其他实体,但不能加载、修改和更新用户。我很确定,这至少在symfony 2.5中有效,但显然不再有效。或者我做了一些糟糕的配置设置

您必须保留您的对象:

$this->get('doctrine')->getManager()->persist($managedUserEntity);
$this->get('doctrine')->getManager()->flush();

此用户是否已登录?是的,它是当前登录的用户。请尝试var_dump$this->getUser或/和var_dump$this->get'doctor'->getRepository'MyBundle:user'->find$this->getUser->getid这将如何帮助我修改数据库中的实体?您可以打印您的用户模型吗?不,该实体已被管理。但无论如何:如果我打电话给persist,它的行为不会有任何改变。试过了。