Doctrine orm Doctrine Lifecycle PrePersist:更改属性名而不是数据库列名

Doctrine orm Doctrine Lifecycle PrePersist:更改属性名而不是数据库列名,doctrine-orm,Doctrine Orm,当挂接到预更新生命周期回调时,$eventArgs->getEntityChangeSet似乎返回数据库列名,而不是对象属性名。例如,如果定义了以下实体: /** * @ORM\Entity */ class Something { ... /** * @ORM\Column(name="some_property", type="integer") */ protected $someProperty; ... } 然后在触发侦听

当挂接到预更新生命周期回调时,$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”而不是“someu属性”获取

为清晰起见,第二个示例:

    /**
     * @ORM\Column(name="full_name", type="integer")
     */
    protected $firstAndLastName;

我应该返回“firstAndLastName”而不是“full_name”作为数组键。

try-Doctrine\Common\definctor::camellize($key)我想,与其简单地对结果进行camel-casting,不如知道如何返回属性名而不是数据库列。我在这个问题上增加了第二个例子。