doctrine 事件
2016-06-21 00:00
316 查看
事件介绍
事件使用
Symfony中使用
[code=language-php]use Doctrine\ORM\Events; Events::preRemove Events::postRemove Events::prePersist Events::postPersist Events::preUpdate Events::postUpdate Events::postLoad Events::loadClassMetadata Events::onClassMetadataNotFound Events::preFlush Events::onFlush Events::postFlush Events::onClear
事件使用
Symfony中使用
[code=language-ini]services: appbundle.event.doctrine_listener: class: AppBundle\EventListener\DoctrineListener tags: - { name: doctrine.event_subscriber }
[code=plain]namespace AppBundle\EventListener; use Doctrine\Common\EventSubscriber; use Doctrine\ORM\Events; use Doctrine\ORM\Event\LifecycleEventArgs; use Doctrine\ORM\Event\PreUpdateEventArgs; use Doctrine\ORM\Event\PreFlushEventArgs; use Doctrine\ORM\Event\PostFlushEventArgs; class DoctrineListener implements EventSubscriber { public function getSubscribedEvents() { return array( Events::prePersist, Events::postPersist, Events::preUpdate, Events::postUpdate, Events::preFlush, Events::postFlush, ); } public function prePersist(LifecycleEventArgs $args) { //插入数据库前 } public function postPersist(LifecycleEventArgs $args) { //插入数据库后 } public function preUpdate(PreUpdateEventArgs $args) { //修改数据库之前 $entity = $args->getEntity(); //判断Entity类型 if($entity instanceof XxInterface){ //跟原始数据差异,更改了哪些字段 //$charged = ['title' => ['old title', 'new title']] $changed = $args->getEntityChangeSet(); //根据修改值,进行其它操作 } } public function postUpdate(LifecycleEventArgs $args) { //修改数据库后 } public function preFlush(PreFlushEventArgs $args) { //保存数据库之前 //注:经测试,在 prePersist后/preUpdate前,很诡异 } public function postFlush(PostFlushEventArgs $args) { //保存数据库后 在 postPersist/postUpdate 后 } }
相关文章推荐
- Symfony2实现在doctrine中内置数据的方法
- Codeigniter + Doctrine + Smarty 如虎添翼!
- The 7th Zhejiang Provincial Collegiate Programming Contest - G(Wu Xing)
- 展望PHP6~
- Why We Serve: Combat Medic Saves Lives Using New Evacuation System
- 交替、机遇、准备
- PHP项目将联合起来转向PHP5,PHP4慢慢淡化
- One hundred years of uncertainty
- 对symfony框架的一些深入研究
- API GetTextMetrics Reassured d1
- API InitAtomTable Nonsense,d1
- API DefFrameProc Well, butd1
- API IsDialogMessage Mrs. Shelbd1
- Doctrine-对象关系映射(ORM)中文版
- Nineteen Eighty-Four--PartⅡ
- Nineteen Eighty-Four--Appendix THE PRINCIPLES OF NEWSPEAK
- Raffles and Miss Blandish
- Some Thoughts on the Common Toad
- Antisemitism in Britain
- PHP4即将退出历史舞台