这里是我的代码:学说ORM不更新实体
$data = $eManager->getRepository('Entity')->findOneBy(array('user_id' => $id));
$data->setUpdatedAt(new \DateTime());
$eManager->persist($data);
$eManager->flush();
这里的事情,我知道:从DB返回
- 的$数据对象正确
- 的$数据对象返回正确格式化
- 我试过“合并”而不是“坚持”...没有好
- setUpdatedAt方法的工作原理
- 我试过添加“$ eManager-> commit();”以及不好的
- 该代码不会引发错误
- 我的实体在另一个方法中正在被正确创建。因此,实体类和数据库连接正在工作
但它实际上并没有坚持到数据库。
我是新来的Zend/Doctrine/Apigility ...有什么我需要检查,以确保数据持续?所有的文件似乎指出这是所需的方法,但我不明白为什么它不坚持数据库。
在刷新数据之前尝试var_dump数据。你看到实际更新的价值? –
是的 - $数据对象实际上更新。 –
因为对象已经被管理,所以你根本不需要'persist()'-call。但它不应该有任何伤害,但请尝试查看symfony2分析器。在那里你可以看到所有执行的查询。也许这可以解决问题 –