基于与关系的关系进行查询的雄辩查询

时间:2018-06-12 14:12:40

标签: laravel-5 eloquent

试图在标题中描述我的问题很困难。我的意思是这个。我有3张桌子。工作,日记,文件。 每个日记条目与Job具有belongsTo关系。每个文档与日记都有属关系。

如何查询文档,以便返回属于单个作业的所有文档。

Document-> diary_id引用Diary-> id - Diary-> job_number_id引用Job-> id

这些个人关系都已建立并开始运作。

我尝试过不同的查询但没有成功。

任何帮助表示赞赏。 问候 Finchy70

2 个答案:

答案 0 :(得分:1)

使用HasManyThrough关系:

public function documents() {
    return $this->hasManyThrough(Document::class, Diary::class, 'job_number_id');
}

$documents = $job->documents()->paginate(15);

答案 1 :(得分:0)

我继续研究并尝试不同的雄辩查询,并找到了一个有效的查询。 不确定它有多么经济,但确实有效。

$documents = $job->diary()
        ->with('job')
        ->join('documents', 'diary_id', '=', 'diaries.id')
        ->select(['documents.*'])
        ->paginate(15);

如果有人有更好的解决方案,请分享。