Laravel"其中"用急切的加载和关系查询

时间:2014-04-26 13:20:25

标签: php laravel eloquent

我正在尝试为客户端做一个自定义论坛软件,而我正在使用laravel框架。 “董事会”包含“讨论”,其中包含许多“评论”。每个讨论属于“类别”。

我现在要做的是按类别创建概述。类别是预定义的(如“新闻”,“内部”,“项目”......),讨论可以分配给它们(类别可以为空)。

按类别进行讨论的控制器方法,通过url-slug搜索如下:

return View::make('pages.board.overview', [
    'discussions', DiscussionCategory::where('slug', $slug)->discussions()->paginate(25)
]);

除此之外,它不起作用。我想检索所有讨论(与他们的作者,通常我会使用::with('author'),但在这种情况下在哪里添加?)具有指定类别,分为25个项目。

如何构建执行此操作的查询?甚至可以在一个查询中完成它吗?

1 个答案:

答案 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