链接多个到多个数据透视表查询Laravel

时间:2015-03-25 18:20:15

标签: php mysql laravel laravel-5 eloquent

在我的应用程序中,我有一个用于作业(模型作业)的搜索过滤器,它与服务(模型服务)有很多关系。除此之外,还有其他特性,以jobs表中的列作为状态显示。

所以我正在做的是我有一个多输入表单,提交后的数据转换为查询我的数据库。

我在做的是:

$job = new Job();

然后用

开始我的查询
$job->newQuery();

并根据表格中的数据开始链接,如

$job->newQuery()->where('status', 2);

等。

当将服务链接为where子句时,我的问题就来了。在表单中,服务表示为一个多选框,因此我可以在where子句中链接的数据是像[1,2,5]这样的数组,它代表我正在寻找的工作的服务的ID包括但是我做的不知道如何在Laravel做到这一点。

我确实有一个数据透视表job_service,其中包含job_idservice_id等。提前感谢任何帮助。

到目前为止我在寻找有[1,3,6]服务的工作的情况是

App\Job::where('status', '=', 2)
   ->whereHas('services', function($q) { 
        $q->whereIn('service_id',[1,3,6]); 
    }, '=',3)->get();

但是上面的回报结果也有3个以上的服务:(

0 个答案:

没有答案