我使用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