查询存档页面的 SiteTree
Query SiteTree for archived pages
我的站点中有几个页面处于存档状态,但看不到 Silverstripe 使用什么来确定页面处于存档状态。
有没有我可以用来确定页面是否处于存档状态的函数,例如
foreach (SiteTree::get() as $page) {
echo $page->isArchived();
}
或者我可以查询 return 所有存档页面的某种属性?
您可以使用回调来过滤掉存档页面,如下所示:
$allPages = Versioned::get_including_deleted('SiteTree');
$deletedPages = $allPages->filterByCallback(function($page) {
// Doesn't exist on either stage or live
return $page->getIsDeletedFromStage() && !$page->getExistsOnLive();
});
上面的代码正是 CMS 中的过滤器所做的(例如,当您过滤存档页面时)
我猜它也可以通过数据库查询来实现,但它不会是对字段的简单检查,而很可能是包含多个子查询的查询。
我的站点中有几个页面处于存档状态,但看不到 Silverstripe 使用什么来确定页面处于存档状态。
有没有我可以用来确定页面是否处于存档状态的函数,例如
foreach (SiteTree::get() as $page) {
echo $page->isArchived();
}
或者我可以查询 return 所有存档页面的某种属性?
您可以使用回调来过滤掉存档页面,如下所示:
$allPages = Versioned::get_including_deleted('SiteTree');
$deletedPages = $allPages->filterByCallback(function($page) {
// Doesn't exist on either stage or live
return $page->getIsDeletedFromStage() && !$page->getExistsOnLive();
});
上面的代码正是 CMS 中的过滤器所做的(例如,当您过滤存档页面时)
我猜它也可以通过数据库查询来实现,但它不会是对字段的简单检查,而很可能是包含多个子查询的查询。