当挂钩到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'作为数组键。