我想检查一个 ManyManyList 是否包含 Silverstripe 中另一个 ManyManyList 中包含的任何对象。
BlogCategories 用于对整个网站的内容进行分类:
class ServicePage extends Page {
private static $many_many = array(
'BlogCategories' => 'BlogCategory',
'BlogTags' => 'BlogTag'
);
class CoursePage extends Page {
private static $many_many = array(
'BlogCategories' => 'BlogCategory',
'BlogTags' => 'BlogTag'
);
在 ServicePage 上,我想显示与 ServicePage 共享 BlogCategory 或 BlogTag 的所有 CoursePage。
实现这一目标的最佳方法是什么?
最佳答案
最好是使用 ->getIDList() 获取共享标签和类别的 ID,然后使用 ->filterAny() 获取博客帖子:
$tagIDs = $this->BlogTags()->getIDList();
$categoryIDs = $this->BlogCategories()->getIDList();
$sharedBlogPosts = BlogPost::get()->filterAny([
'Tags.ID' => $tagIDs
'Categories.ID' => $categoryIDs
]);
关于php - 比较 Silverstripe 中的两个 ManyManyList,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34846053/