SilverStripe 2.4では、子データオブジェクト「B」のonAfterWrite()メソッドで親データオブジェクト「A」のIDを取得できました。
$this->AClassID
「B」のonAfterWrite()メソッドで「A」のIDを取得するにはどうすればよいですか?
注:「A」には多くの「B」があり、「B」には1つの「A」があります(1対多の関係)。
親切な検討のためにここにサンプルコード:
SilverStripe 2.4では、子データオブジェクト「B」のonAfterWrite()メソッドで親データオブジェクト「A」のIDを取得できました。
$this->AClassID
「B」のonAfterWrite()メソッドで「A」のIDを取得するにはどうすればよいですか?
注:「A」には多くの「B」があり、「B」には1つの「A」があります(1対多の関係)。
親切な検討のためにここにサンプルコード:
試してみてください$this->AClass->ID
。またはあなたがあなたのieParent
に関係を設定している場合has_one
public static $has_one=array(
'Parent'=>'AClass'
);
を使用できます$this->Parent->ID
。
続行する前に、ifステートメントを使用して0でないことを確認してください。お気に入り
if($this->ID){
//put all your code here
}
または
if($this->RelationName()->ID){
//put all your code here
}
その理由は、それが複数回呼び出され、ゼロ以外のときに実行する必要があるためです。
これを試してください:
$this->Parent()->ID