我在Page.php中設置了一個名爲Color的字段,並且我想要抓取父級顏色或循環的任何子項,直到找到設置了顏色字段的父級。SilverStripe繼承父數據對象中的元素
我有一個函數,它似乎在2.4下工作,但我不能在SS3中工作,我在模板中循環調用$ Inherited(Color)。
您的幫助表示讚賞
public function Inherited($objName) {
$page = $this->owner->Data();
do {
if ($obj = $page->obj($objName)) {
if ($obj instanceof ComponentSet) {
if ($obj->Count()) {
return $obj;
}
} elseif ($obj instanceof DataObject) {
if ($obj->exists()) {
return $obj;
}
} elseif ($obj->exists()) {
return $obj;
}
}
} while ($page->ParentID != 0 && $page = $page->Parent());
}
鏈接不工作:https://web.archive.org/web/20121025022048/http://www.robertclarkson.net/2012/06/dataextension-class-replacing-dataobjectdecorator-silverstripe-3-0 – user956584