关于嵌套eager load的Laravel orWhere()语句

时间:2016-05-01 20:11:53

标签: laravel eloquent eager-loading

我正在尝试运行一个查询,其中可以存档嵌套关系,但也可以存档主要的Eloquent模型。我需要退回其中一个或两个。

论坛帖子可以属于许多论坛类别。

论坛帖子可以设置为已存档。

论坛类别可以设置为已存档。

如果论坛类别已归档,则会在该类别上返回所有论坛帖子。

如果论坛类别未归档但论坛帖子已存档,则只返回那些论坛帖子。

希望这是有道理的。

$this->thread = $this->thread->with([
    'user',
    'posts',
    'posts.likes',
    'posts.dislikes',
    'posts.user',
    'categories' => function ($query) {
        $query->orWhere('is_archived', true);
    }
])->orWhere('is_archived', true)->orderBy('created_at', 'desc')->get();

0 个答案:

没有答案