2014-12-03 76 views
1

我有一對多的關係設置。Laravel Eloquent - 僅當數據與一對多關係匹配時才提取數據

客戶可以有許多學生,學生可以有完整或左邊的狀態。

我想要取得客戶,只有當他們有充分的學生。

我想預先加載會做的伎倆,但它仍然是回頭客,如果他們沒有完整的學生:

$customers = Customer::with(array('students' => function($query) 
    { 
     $query->where('STATUS', '=', 'FULL'); 
    }))->get(); 

有一個狩獵左右在谷歌,但找不到任何東西,真的不知道怎麼樣來回答這個問題。

感謝您的幫助

+0

客戶是否也有一個狀態字段? – solidau 2014-12-03 01:01:23

+0

不,客戶總是存在(在這種情況下,他們是父母)。他們沒有領域來確定他們的地位。卡住表結構也不能修改數據庫。 – Pedro 2014-12-03 01:04:03

回答

2

您只是選擇與該查詢拉回什麼關係。你需要的是選擇其中的關係有一定的財產

嘗試客戶

$customers = Customer::whereHas('students', function($q) { 
    $q->where('STATUS', '=', 'FULL'); 
})->get(); 

延伸閱讀:

http://laravel.com/docs/4.2/eloquent#querying-relations

+0

Mucho gracias !! – Pedro 2014-12-03 01:38:30