当挂钩到 PreUpdate 生命周期回调时,$eventArgs->getEntityChangeSet 似乎返回数据库列名而不是对象属性名。例如,如果您定义了以下实体:
/**
* @ORM\Entity
*/
class Something {
...
/**
* @ORM\Column(name="some_property", type="integer")
*/
protected $someProperty;
...
}
然后你更新 $someProperty,当你的监听器被触发时:
class Listener {
public function preUpdate(PreUpdateEventArgs $eventArgs) {
\Doctrine\Common\Util\Debug::dump($eventArgs->getEntityChangeSet());
die();
}
}
输出是:
array (size=1)
'some_property' =>
array (size=2)
0 => int 1
1 => int 2
有没有办法将数组键作为“someProperty”而不是“some_property”?
为清楚起见,第二个示例:
/**
* @ORM\Column(name="full_name", type="integer")
*/
protected $firstAndLastName;
我应该取回 'firstAndLastName' 而不是 'full_name' 作为数组键。