2016-11-18 88 views
0

我有這種關係:Laravel雄辯其中的關係可能會或可能不會有結果

一個Company可以有一個或多個Employees

我需要SELECT公司基於first_nameEmployee,但員工的first_name不匹配時不顯示。

這是我目前擁有的。

$companies = Company::with(array('employees' => function($q) { 
    $type = (!empty(Input::get('company_search_employee'))) ? '%' . Input::get('company_search_employee') . '%' : '%'; 
    $q->where('employees.first_name', 'LIKE', $type); 
}))->get(); 

員工first_name如果Company沒有任何Employee小號

必須被忽略,但它顯示了公司數據,即使員工不匹配。該員工只是隱藏起來。

我該怎麼做呢?

回答

1

試試這樣:

$companies = Company::whereHas('employees', function($q){ 
    $type = (!empty(Input::get('company_search_employee'))) ? '%' . Input::get('company_search_employee') . '%' : '%'; 
    $q->where('first_name', 'LIKE', $type); 
})->get(); 

,或者如果它不工作添加 '僱員' where子句:

$q->where('employees.first_name', 'LIKE', $type); 
+0

謝謝!完美地工作。 – MegaXLR