Php Pimcore-在preUpdateObject钩子中获取旧对象状态
我需要比较当有人保存对象时,对象的某个属性是否发生了更改。我编写了一个插件,可以在更新后端对象之前和之后添加一些功能 所以,我不知道这是不是像预期的那样起作用,还是我弄错了 我想在将状态保存到数据库之前,我会在以下位置获取状态:Php Pimcore-在preUpdateObject钩子中获取旧对象状态,php,content-management-system,zend-framework,pimcore,Php,Content Management System,Zend Framework,Pimcore,我需要比较当有人保存对象时,对象的某个属性是否发生了更改。我编写了一个插件,可以在更新后端对象之前和之后添加一些功能 所以,我不知道这是不是像预期的那样起作用,还是我弄错了 我想在将状态保存到数据库之前,我会在以下位置获取状态: function preUpdateObject(Object_MyObject $object) {} 以及对象的新状态 function postUpdateObject(Object_MyObject $object) {} 但这不起作用: public fu
function preUpdateObject(Object_MyObject $object) {}
以及对象的新状态
function postUpdateObject(Object_MyObject $object) {}
但这不起作用:
public function preUpdateObject(Object_MyObject $object) {
$this->tempOldDate = $object->getUpdate();
}
public function postUpdateObject(Object_MyObject $object){
if($this->tempOldDate->compareDate($object->getUpdate()) == -1) {
// do something because a newer date has been entered
}
}
有什么线索可以告诉我如何在更新之前获取旧对象状态吗 此函数似乎没有按预期工作。我提交了一份bug报告: 我创建了一个可以使用的变通方法 数据库未更新。因此,preUpdateObject是用于获取对象状态的函数是正确的,但是: 检查数据库是否未更新。。。。我想从“object_1”表中的对象中获取一个日期
// oldDate has the old value
$dbAdapter = Pimcore_Resource_Mysql::get("database");
$dbentry = $dbAdapter->fetchRow(
$dbAdapter->select()
->from('object_1')
->where('o_id = ?', $object->getId()));
$oldDate = new Pimcore_Date($dbentry['update']);
使用生成的对象类不起作用,但如果清除缓存,则会起作用
// get's the new date from the editor
$oldDate = Object_MyObject::getById($object->getId())->getUpdate();
// this also works but don't know if it is safe to delete
// the object from the registry
Zend_Registry::set('object_' . $object->getId(), false);
$oldDate = Object_MyObject::getById($object->getId())->getUpdate();