我试图在onAfterWrite或之前或onBeforeDelete上执行简单的写命令。但它根本不起作用。
对象1 - >在这里我想执行代码。与Object2具有$ has_one关系(Item)
public function onAfterWrite(){
parent::onAfterWrite();
$item = Object2::get()->byID($this->ItemID);
$item->Title = 'test123';
$item->write();
}
在After / Before功能上相互出现同样的问题。 如果没有错误或其他任何原因。
错误在哪里?
答案 0 :(得分:1)
如果我正确理解您,您希望获取并操纵通过has_one关系与Object1记录相关的Object2记录。假设您已在Object2中声明了您的关系:
class Object2 extends DataObject{
private static $has_one = array(
'Object1' => 'Object1'
);
...
Object1中的onAfterWrite代码应该类似于
public function onAfterWrite(){
parent::onAfterWrite();
// use the find() method to look up the relation
$item = Object2::get()->find('Object1ID', $this->ItemID);
// check that the related item exists before editing
if($item){
$item->Title = 'test123';
$item->write();
}
}