这是我的代码:
$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 的人来说,这可能会有所帮助。