2016-11-04 54 views
1

我在我的應用程序EmployersEmployees之間有一個多對多的關係,並且我試圖確定如何查詢所有爲之工作的「員工」一組公司。從多個模型中選擇一個多才多藝的關係

例如,我不妨選擇「工業公司」和「鏟無限」的全體員工

Example Data Relation

如果我查詢這些單獨我將獲得[山姆彌敦道對於工業公司和[Kory彌敦道對於鏟無限

我可以選擇這些單獨,然後結合,但是我得到了一個重複的內森。
[山姆彌敦道Kory彌敦道]

有沒有辦法讓這個查詢返回的結果[山姆彌敦道Kory]


我已經嘗試了一堆東西,但沒有嘗試正在得到我需要的東西。

這將讓我什麼,我從一個僱主

Employer::find(2)->employees()->get() 

需要,這將讓我兩個或兩個以上用人單位

Employer::::findMany([2,4]); 

但我不能簡單地

Employer::::findMany([2,4])->employees()->get(); 

因爲findMany([...])返回Illuminate\Support\Collection

回答

2

是的,你想使用whereHas

$employer_ids = [1, 2, 3]; // These are ids of employers you want to get all employees for. 
$employees = Employee::whereHas('employers', function($q) use ($employer_ids) { 
    $q->whereIn('employer_id', $employer_ids); 
});