我試圖在使用預先加載優化的關係,實施條件,與預先加載條款,但是當我做如下:Laravel與預先加載使用條件
$totalOpenQry = Enquiry::whereIn('staff_id', $employeeIds)
->with(['enquiryStats' => function ($query) {
$query->where('is_open','=',true)
->where('is_dead','=',false)
->orderBy('id','asc');
}])
->where('ed_timestamp', '>=', $dateRange['start'])
->with('country');
$totalOpen = $totalOpenQry->toSql();
$ totalOpenQry- > toSql()
產生以下:
'select * from `enquiries` where `staff_id` in (10, 15) and `ed_timestamp` >= '2017-09-12';
它似乎我無視條款中的where條件。有沒有辦法解決這個問題或正確實施?
感謝
你正在使用哪個laravel版本? –
關係未加載到相同的查詢中。 Eager加載仍然運行額外的查詢來加載數據,而不是每行額外的查詢。 – Devon
使用Laravel 5.3。 @Devon,我認爲我可以用加載關係來加載?我的結果似乎忽略了is_open並且完全被關閉了 – liamjnorman