2014-07-14 35 views
0

嘗試使用Eloquent並接收錯誤來模擬LEFT JOIN。基本上,我試圖獲得Usersaddresses,但只有某種類型。Laravel 4.1使用「where」與「with」過濾相關MySQL表格的雄辯

此代碼不能正常工作,但我認爲你會得到要點:

$user = User::with('addresses', 'cards')->where(function($query) { 
    $query->where('address.type', '=', 'shipping'); 
})->find(Auth::user()->id); 

如果我離開過它工作正常的where,但更多的地址返回比我需要/想。

我該如何做到這一點,所以我只能得到一個type ='shipping'的地址?我也想用cards做同樣的事情。如果沒有送貨地址,我還想要其他的東西。

我正在嘗試使用雄辯vs流利/數據庫(我做了工作),但只是無法弄清楚。

後續:根據你有什麼版本的PHP,你可能需要做array(load array)[load array]。 Dev和Prod並不總是相同的。

+0

你只想地址用戶類型的發貨地址。或只有地址類型爲shipping的用戶? – lagbox

+0

我想要用戶和只有類型「送貨」的地址。但我希望用戶不管是否返回地址。我在Fluent中看到了這一點,但是在雄辯中,我無法得到它的工作。上面的代碼可以被認爲是僞代碼。 – Jazzy

回答

0

這樣將返回您的用戶與他們的所有卡,並只有在類型=「運費」

$user = User::with(['cards','addresses'=>function($query){ 
     $query->where('type','shipping'); 
    }])->find(Auth::user()->id);