Symfony 4条令生命周期EventArgs getEntity()与getObject()



LifecycleEventArgs::getObject()LifecycleEventArgs::getEntity()之间有什么区别?

namespace AppEventListener;
use DoctrineCommonEventSubscriber;
use DoctrineORMEventLifecycleEventArgs;
use DoctrineORMEvents;
/**
 * Class MyListener
 *
 * @package AppEventListener
 */
class MyListener implements EventSubscriber
{
    /**
     * @return array|string[]
     */
    public function getSubscribedEvents()
    {
        return [
            Events::postUpdate,
        ];
    }
    /**
     * @param LifecycleEventArgs $event
     */
    public function postUpdate(LifecycleEventArgs $event)
    {
        $entity = $event->getEntity();
        $object = $event->getObject();
        $entity === $object; //true...
    }
}

据我所知,这两个方法返回完全相同的对象,即它们指向给定实体的同一实例。

总是这样吗?

应该使用其中一个而不是另一个吗?

没有区别。getObject()方法来自doctrine/persistence包提供的LifecycleEventArgs类的父类。

当您想要为几个Doctrine实现(例如ORM和ODM(构建集成层时,基本事件类主要是有用的,在这种情况下,您将使用getObject()

相关内容

  • 没有找到相关文章

最新更新