par*_*sss 1 updates symfony doctrine-orm
我使用 symfony2 和学说。当实体的特殊属性发生变化时,我想做一些更改;实际上我想保存我的属性的更改并拥有它的更改状态。例如,当任何字段更改执行与更改的字段名称相关的某些操作时,我该怎么说。
例如,如果电子邮件更改,则向另一个实体添加一些行。
谢谢。
您应该能够使用 Doctrine Listeners 和 UnitOfWork 变更集做一些事情,如下所示:
use Doctrine\ORM\Event\LifecycleEventArgs;
class DoctrineListener
{
public function preUpdate(LifecycleEventArgs $args)
{
$entity = $args->getEntity();
$entityManager = $args->getEntityManager();
if ($entity instanceof MyEntityClass) {
$changeSet = $entityManager->getUnitOfWork()->getEntityChangeSet($entity);
if (isset($changeSet['my_field'])) {
//do something here
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
例如,这就是一些 Doctrine 扩展注册其更改的方式。