Symfony2或Doctrine2中是否有预先定义的方法来运行特定的代码段。仅在特定实体字段更改时使用EventSubscriber或Service?
在我的用例中,用户可以创建一个新项目。 他们可以为项目提供特定选定货币的价值。 该值将转换为他们选择的基础货币。
问题在于,我只想在首次创建项目时或仅更改项目值属性时触发计算/转换。
我现在正在使用一个解决方案,我订阅了doctrine postPersist事件,但如果它们只是更改了项目的名称,则会触发转换。
编辑:正如丹尼斯所指出的,我应该清楚地提到我在composer.json中有这个约束,因为教义> = 2.2.3,< 2.4-dev
答案 0 :(得分:2)
documentation给出了这个例子:
<?php
// ...
class User
{
public function preUpdate(PreUpdateEventArgs $event)
{
if ($event->hasChangedField('username')) {
// Do something when the username is changed.
}
}
}
你试过吗?
P.S。它只适用于Doctrine 2.4。