我正在尝试为客户端做一个自定义论坛软件,而我正在使用laravel框架。 “董事会”包含“讨论”,其中包含许多“评论”。每个讨论属于“类别”。
我现在要做的是按类别创建概述。类别是预定义的(如“新闻”,“内部”,“项目”......),讨论可以分配给它们(类别可以为空)。
按类别进行讨论的控制器方法,通过url-slug搜索如下:
return View::make('pages.board.overview', [
'discussions', DiscussionCategory::where('slug', $slug)->discussions()->paginate(25)
]);
除此之外,它不起作用。我想检索所有讨论(与他们的作者,通常我会使用::with('author')
,但在这种情况下在哪里添加?)具有指定类别,分为25个项目。
如何构建执行此操作的查询?甚至可以在一个查询中完成它吗?
答案 0 :(得分:1)
这将有效:
DiscussionCategory::where('slug', $slug)->with('discussions.author')->paginate(25)
在关系上设置外键:
// Discussion model, the same applies to the Category model
public function category()
{
return $this->belongsTo('Umc\Models\DiscussionCategory', 'category_id');
}
分页讨论:
$category = DiscussionCategory::where('slug', $slug)->first();
$discussions = $category->discussions()->paginate(25);
$discussions->load('author'); // eager load authors on the collection