【发布时间】:2017-02-06 15:27:29
【问题描述】:
我目前正在编写一个非常抽象的订阅者,它应该捕获并处理任何给定文档上的所有类型的更改。
在尝试时,我遇到了一个我不知道如何处理的边缘:
1) 我的文档保留了一个 embedMany 子文档集合。
2) 我打电话给$document->collection->clear()
3)然后我冲洗
如何捕捉对集合属性的更改?
我的订阅者目前对学说的 onFlush 事件作出反应。到目前为止,我已尝试关注(均未成功):
- 迭代 ScheduledDocumentInsertions
- 迭代 ScheduledDocumentUpserts
- 迭代 ScheduledDocumentUpdates
- 遍历完整的 IdentityMap() 并为每个文档调用
$unitOfWork->getScheduledCollections($document)并尝试在那里找到更改
在任何这些情况下,我似乎都无法找到该文档或其集合。不过,我强烈认为,如果该原则计划在实际数据库提交期间清除所有内容,则应该保留对集合的引用。
对于可行的解决方案的任何帮助或提示,我将不胜感激。
【问题讨论】:
标签: php mongodb symfony doctrine doctrine-odm