我正在开发一个 SilverStripe 项目。现在我正在尝试像这样在控制器中通过 ID 获取 Page 对象。$currentPage = Page::get()->byID($this->ID);另外,我也想要 $currentPage 的所有父母/父母。但是我无法在页面的数据库表中找到相关列,例如 parent_page_id 或其他任何内容。如何获取 Page 数据对象的所有父页面?
1 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
从广义上讲,页面是一个 SiteTree 对象。该ParentID
列存在于SiteTree
数据库表中。您可以像这样访问页面的父级:
$parent = $currentPage->Parent();
您也可以使用SiteTree::getParent()
相同的结果:
$parent = $currentPage->getParent();
如果您需要递归地获取所有父项,您可以在循环中执行此操作,直到->Parent()
返回 falsy。
此外,作为SiteTree
用途Hierarchy
为家长/孩子的逻辑,你也可以使用getAncestors()
让所有的父母和祖父母。请参阅API 文档。
- 1 回答
- 0 关注
- 160 浏览
添加回答
举报
0/150
提交
取消