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

时间:2014-12-15 10:00:01

标签: symfony

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

class StartController extends Controller {
   public function welcomeAction() {
     if ($this->getUser()) {
       $this->getUser()->setLastLogin(new \DateTime());
       $this->get('doctrine')->getManager()->flush();
       ... some more code ...

未执行任何更新语句。所以我修改了我的控制器:

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中起作用,但显然不再如此。或许我做了一些错误的配置设置。

1 个答案:

答案 0 :(得分:0)

你必须坚持你的对象:

$this->get('doctrine')->getManager()->persist($managedUserEntity);
$this->get('doctrine')->getManager()->flush();
相关问题