为了账号安全,请及时绑定邮箱和手机立即绑定

SilverStripe中获取Page DataObject的父页面

SilverStripe中获取Page DataObject的父页面

PHP
杨__羊羊 2021-07-07 07:47:48
我正在开发一个 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 文档


查看完整回答
反对 回复 2021-07-09
  • 1 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信