在SilverStripe 2.4中,我能够通过
获取子数据对象“B”的onAfterWrite()方法中的父DataObject“A”的ID$this->AClassID
如何在“B”的onAfterWrite()方法中获取“A”的ID?
注意:“A”有很多“B”,“B”有一个“A”(一对多的关系)。
此处的示例代码供您考虑:
答案 0 :(得分:2)
试试$this->AClass->ID
。或者,如果您在Parent
即
has_one
关系
public static $has_one=array(
'Parent'=>'AClass'
);
您可以使用$this->Parent->ID
。
答案 1 :(得分:0)
在继续之前使用if语句确保它不为0。喜欢
if($this->ID){
//put all your code here
}
或者
if($this->RelationName()->ID){
//put all your code here
}
原因是它被多次调用,你只需要在非零时执行。
答案 2 :(得分:0)
试试这个:
$this->Parent()->ID