2017-04-17 32 views
0

我在我的laravel应用程序中有一个BusinessServices模型。一个企业可以有很多Services(通过business_services链接表)。我试图创建一个搜索功能,这将允许我传递一系列服务,我想通过雄辩的方式搜索所有提供这些服务的企业。雄辩地凡有所有相关记录

我想出了这个至今:

Business::all() 
->whereHas('services', function($q) use ($treatments_wanted) { 
    $q->where('service_id', $services_array); 
}) 

这个虽然问题是,它会显示有附加的服务中的至少一个,我想列出都服务业务的企业列于$services_array

有人可以解释一下最有效的方法吗?

回答

0

我想你需要遍历所有的服务并添加whereHas()。试试看:

$query = Business::all(); 

foreach ($services_array as $service) { 
    $query->whereHas('services', function($q) use ($service){ 
     $q->where('service_id', $service); 
    }); 
} 

$businesses = $query->get();