我正在使用Laravel 4构建简单的论坛。我需要计算当前用户在给定主题上撰写的帖子。
到目前为止我所拥有的:
$topic = Topic::find(1);
$user = Auth::user();
echo $user->posts()->whereTopicId($topic->id);
这很好用,但我对直接处理ID感到不满意。是否可以使用关系以整洁的方式完成它?
我正在寻找类似的东西:
echo $user->posts()->whereTopic($topic);
哪个不起作用。
答案 0 :(得分:1)
您可以在$user->posts()->whereTopic($topic)
模型中使用scopes来实现Post
public function scopeTopic($query, $topic)
{
return $query->where('topic_id', '=', $topic->id);
}