是否可以检查preUpdate
钩上是否更改字段?我正在寻找诸如preUpdate
hasChangedField($fieldName)
学说功能之类的东西。有什么想法吗?
这个问题与此问题有点相似
您的解决方案只是将旧对象的字段与新物体的区域进行比较,并查看其不同的位置。
所以:
public function preUpdate($newObject)
{
$em = $this->getModelManager()->getEntityManager($this->getClass());
$originalObject = $em->getUnitOfWork()->getOriginalEntityData($newObject);
if ($newObject->getSomeField() !== $originalObject['fieldName']) {
// Field has been changed
}
}
对我来说,最好的方法是在奏鸣曲中:
$newField = $this->getForm()->get('field')->getData();
$oldField = $this->getForm()->get('field')->getConfig()->getData();
除非没有选择,否则您不应使用单位。另外,如果您没有映射的字段,则无法通过实体对象访问它。
在普通学说的莱夫周期活动中,最好的选择是学说predate event doc