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
配列キーを「some_property」ではなく「someProperty」として取得する方法はありますか?
わかりやすくするための 2 番目の例:
/**
* @ORM\Column(name="full_name", type="integer")
*/
protected $firstAndLastName;
配列キーとして「full_name」ではなく「firstAndLastName」を返す必要があります。