2017-04-17 71 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();