我现在正在谷歌搜索大约2个小时,无法找到这个问题的答案。我试图通过Author / MemberID过滤博客帖子(使用silverstripe-blog模块)。到目前为止,我已经:
public function MyRecentPosts() {
$posts = BlogPost::get()
->sort('PublishDate','desc')
->limit(2);
return $posts;
}
显然,这只会返回最新的博文。我不确定我是否理解如何将Blog Post表与BlogPost_Authors表相关联...
非常感谢任何建议。
答案 0 :(得分:7)
BlogMemberExtension
类适用于Member
类,它为您提供了一种通过“很多很多”协会访问会员帖子的简便方法。
我在这里假设这个函数不在成员的扩展名中,并且你将传递成员ID,因为它已经不存在于你的代码中。这个假设可能不正确,因为您的方法被命名为“我的 RecentPosts”,但无论如何 - 这是一个例子:
public function MyRecentPosts($memberId)
{
$member = Member::get()->byId($memberId);
$posts = $member->BlogPosts()
->sort('PublishDate', 'desc')
->limit(2);
return $posts;
}
您也可以通过“许多”协会从BlogPost
模型中执行此操作:
$posts = BlogPost::get()
->filter(array('Authors.ID' => $memberId))
->sort('PublishDate', 'desc')
->limit(2);