doctrine2获取有关更新字段的信息

时间:2011-05-05 20:14:36

标签: doctrine-orm unit-of-work

嗨,我想知道在控制器中更新了哪个字段,我没有发现任何可能听起来像我正在尝试在UnitOfWork的API文档中实现的内容。 例如,我想添加类似于此

的@PreUpdate代码
/** @PreUpdate */ 
function updateAllIsDefaultFields(){
    //only if $this->isDefault propery for this entity is changed to 1 from its previous state, then update all other entities so they all have isDefault to 0

//else, means that this field is not changed, don't do anything

    }

或者必须在每次操作时从控制器完成此操作?

我知道每次将$ this-> isDefault设置为1时我都可以这样做,但我想避免它的性能,我可能会发现它对其他一些场景也很有用。 提前致谢

2 个答案:

答案 0 :(得分:1)

Doctrine2有一些好behaviors。这里的example类似于你的情况。

答案 1 :(得分:1)

你必须写一个Event Subscriber。可能使用onFlush事件,您可以从UnitOfWork中检索实体更改集,以确定某个字段是否已更新,然后执行您想要的任何操作。