SilverStripe中获取Page DataObject的父页面

我正在开发一个 SilverStripe 项目。现在我正在尝试像这样在控制器中通过 ID 获取 Page 对象。

$currentPage = Page::get()->byID($this->ID);

另外,我也想要 $currentPage 的所有父母/父母。但是我无法在页面的数据库表中找到相关列,例如 parent_page_id 或其他任何内容。如何获取 Page 数据对象的所有父页面?


杨__羊羊
浏览 167回答 1
1回答

郎朗坤

从广义上讲,页面是一个 SiteTree 对象。该ParentID列存在于SiteTree数据库表中。您可以像这样访问页面的父级:$parent = $currentPage->Parent();您也可以使用SiteTree::getParent()相同的结果:$parent = $currentPage->getParent();如果您需要递归地获取所有父项,您可以在循环中执行此操作,直到->Parent()返回 falsy。此外,作为SiteTree用途Hierarchy为家长/孩子的逻辑,你也可以使用getAncestors()让所有的父母和祖父母。请参阅API 文档。
打开App,查看更多内容
随时随地看视频慕课网APP