在 Doctrine 2 中跟踪实体更改
Doctrine 2 提供了一种使用 EntityManager 和 UnitOfWork 跟踪实体更改字段的方法。
假设你有一个实体 $e 并修改它fields:
$e->setFoo('a'); $e->setBar('b');
要检索已更改字段的数组:
获取工作单元:
$uow = $em->getUnitOfWork();
计算更改:
$uow->computeChangeSets();
获取实体更改:
$changeset = $uow->getEntityChangeSet($e);
$changeset 将包含所有修改的属性值对:
[ 'foo' => ['old' => 'oldFoo', 'new' => 'a'], 'bar' => ['old' => 'oldBar', 'new' => 'b'], ]
更新前侦听器注意事项:
如果尝试在更新前侦听器中检索更新的字段,请跳过更改集计算,因为它已经发生。只需调用 getEntityChangeSet 即可检索更改。
警告:
在 Doctrine 事件侦听器之外使用此方法可能会中断其操作。
以上是如何跟踪 Dotrine 2 中的实体更改?的详细内容。更多信息请关注PHP中文网其他相关文章!