LifecycleEventArgs::getObject()
和LifecycleEventArgs::getEntity()
有什么区别?
namespace App\EventListener;
use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Events;
/**
* Class MyListener
*
* @package App\EventListener
*/
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...
}
}
据我所知,这两种方法都返回完全相同的 object ,即它们指向给定实体的相同实例。
总是这样吗?
应该用一个代替另一个吗?
答案 0 :(得分:2)
没有区别。 getObject()
方法来自LifecycleEventArgs
包提供的doctrine/persistence
类的父类。
当您要为多个Doctrine实现(例如ORM和ODM)构建集成层,并且在这种情况下,您将使用getObject()
时,基本事件类非常有用。