php - Symfony 4 Doctrine LifecycleEventArgs getEntity() 与 getObject()
问题描述
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...
}
}
据我所知,这两种方法返回完全相同的对象,即它们指向给定实体的相同实例。
总是这样吗?
应该使用一个而不是另一个还是无关紧要?
解决方案
没有区别。该getObject()
方法来自包LifecycleEventArgs
提供的类的父类doctrine/persistence
。
当您想为多个 Doctrine 实现(例如 ORM 和 ODM)构建集成层并且在这种情况下您将使用getObject()
.
推荐阅读
- python - 在pygame中禁用抗锯齿
- python - 如何在没有 Pandas 的情况下使用 Python 从 CSV 文件中获取 10 个最高值
- javascript - Flickity - 多个轮播的问题
- javascript - Google Apps 脚本根据 if 语句更新特定单元格
- c# - C# 中的字典未处理异常:“字典中不存在给定的键”
- python-3.x - 似乎无法让这个 for 循环与范围一起使用
- java - 按下按钮时增加 1
- sql - 计算同一组成员的有效方法
- sql - MS Access - 删除运行总计(子查询输出)< 100 的记录
- python - 绑定事件后,Tkinter 如何处理 lambda?