在我的应用程序中,我有一个用于作业(模型作业)的搜索过滤器,它与服务(模型服务)有很多关系。除此之外,还有其他特性,以jobs
表中的列作为状态显示。
所以我正在做的是我有一个多输入表单,提交后的数据转换为查询我的数据库。
我在做的是:
$job = new Job();
然后用
开始我的查询$job->newQuery();
并根据表格中的数据开始链接,如
$job->newQuery()->where('status', 2);
等。
当将服务链接为where子句时,我的问题就来了。在表单中,服务表示为一个多选框,因此我可以在where子句中链接的数据是像[1,2,5]
这样的数组,它代表我正在寻找的工作的服务的ID包括但是我做的不知道如何在Laravel做到这一点。
我确实有一个数据透视表job_service
,其中包含job_id
和service_id
等。提前感谢任何帮助。
到目前为止我在寻找有[1,3,6]服务的工作的情况是
App\Job::where('status', '=', 2)
->whereHas('services', function($q) {
$q->whereIn('service_id',[1,3,6]);
}, '=',3)->get();
但是上面的回报结果也有3个以上的服务:(