我有以下要求:
$results = ResultTest::with("client", "doctor.distributor")
->whereIn("client_id", $transaction_items_unique_codes)
->get();
它回傳我的結果陣列。在我需要為每個回傳的陣列項獲取附加資料并將其加入一個結果之后:
foreach ($results as $result) {
$conclusion = Conclusion::where("type_work", $result->type_work)
->where("category", $result->category)
->firstOrFail();
$types = Work::orderBy('name')->get()->pluck('name', 'id');
}
問題是$results包含更多 100 行,因此對 db 的 100 個請求存在問題。
uj5u.com熱心網友回復:
為什么不只使用 a leftJoin?
$results = ResultTest::query()
->with([
'client',
'doctor.distributor'
])
->leftJoin('conclusions c', function ($join) {
$join->on('result_tests.type_works', 'c.type_works')
->on('result_tests.category', 'c.category')
})
->whereIn('client_id', $transaction_items_unique_codes)
->get();
如果這只是一個條件,您可以創建一個關系并立即加載它,但據我目前所能想到的,Eloquent 不支持定義依賴于多個列的關系。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/428456.html
標籤:拉拉维尔
