我使用symfony2与教条。 我想在实体的特殊属性发生变化时进行一些更改;实际上我想保存我的属性的更改并具有其更改的状态。 我怎么能说,例如,当任何领域的变化做相关的更改字段的名称。做一些特殊的领域改变(学说)
例如,如果电子邮件发生变化,则向另一个实体添加一些行。
谢谢。
我使用symfony2与教条。 我想在实体的特殊属性发生变化时进行一些更改;实际上我想保存我的属性的更改并具有其更改的状态。 我怎么能说,例如,当任何领域的变化做相关的更改字段的名称。做一些特殊的领域改变(学说)
例如,如果电子邮件发生变化,则向另一个实体添加一些行。
谢谢。
至于除了燕回答,学说已经为您的需求像hasChangedField
,getNewValue
.. 方法,您可以在这里阅读更多:
http://doctrine-orm.readthedocs.org/en/latest/reference/events.html#preupdate
你应该能够做到与学说的听众和的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
}
}
}
}
例如,这是怎样的一些学说的扩展正在注册自己的变化。
当我阅读文档时,它说它不可用,如果你想更改实体关联..我想添加或删除另一个实体,由于当前实体的变化..你有任何解决方案吗? – parisssss 2014-10-30 20:16:17