Eloquent中的多个集合关系查询

时间:2017-06-22 11:34:48

标签: php laravel eloquent

我有3个表:variantsjobsoptions。每个variant都有很多jobs,每个job都有很多options

我需要查询属于某个jobs的所有options.option = 'tbd' variant

例如我有variant.id=5,那么查询应该是这样的:

SELECT jobs.name FROM jobs LEFT JOIN options ON jobs.id = options.job_id WHERE options.option = 'tbd' AND jobs.variant_id = 5

我怎样才能在Eloquent中得到这个? Variant::find(5)->jobs->has('options.option','=','tbd')无效。

1 个答案:

答案 0 :(得分:0)

您可以尝试:

Variant::find(5)->jobs()->whereHas('options',function($q) {
                    $q->where('option','tbd');
                });