2017-04-17 15 views
0

私のlaravelアプリケーションにBusinessServicesモデルがあります。ビジネスにはServices(business_servicesリンクテーブル経由)が多数存在します。私はサービスの配列を渡すことができる検索機能を作成しようとしています、私はこれらのサービスを提供するすべての企業を雄弁に検索したいと思います。Eloquent Where関連するすべてのレコード

私はこれまで出ている:

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(); 
関連する問題