学说ORM不更新实体



这是我的代码:

        $data = $eManager->getRepository('Entity')->findOneBy(array('user_id' => $id));
        $data->setUpdatedAt(new DateTime());
        $eManager->persist($data);        
        $eManager->flush();

以下是我知道的事情:

  • 从数据库正确返回$data对象
  • 返回的$data对象格式正确
  • 我尝试过"合并"而不是"持久"...白搭
  • setUpdateAt 方法有效
  • 我也尝试添加"$eManager->commit();",不好
  • 代码不会引发任何错误
  • 我的实体在另一种方法中被正确创建。因此,实体类和数据库连接正常工作

但它实际上并没有持久化到数据库中。

我是Zend/Doctrine/Apigility的新手...我还需要检查其他内容以确保数据持久化吗?所有文档似乎都指向这是所需的方法,但我无法弄清楚为什么它没有持久化到数据库。

HTTP 方法获胜。

正如我所提到的,我正在使用Zend/Doctrine和Apigility。答案是代码是正确的,但Apigility的中间层正在做一些基于HTTP方法过滤掉请求的场景。不确定确切是什么,因为我仍然习惯于这个框架,但是一旦我将代码从 update() 方法移动到 patch() 方法,它就起作用了。

我考虑删除这个问题,因为它的教义部分是正确的,但对于任何可能同时使用教义和 Apigility 的人来说,这可能会有所帮助。

相关内容

  • 没有找到相关文章

最新更新