1 回答

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以with()使用數(shù)組作為第一個(gè)參數(shù)的調(diào)用來(lái)過(guò)濾它們。如果您傳遞包含的鍵和closures查詢的鍵,則可以在其中查詢關(guān)系。這些closures在您的情況下非常通用,我在數(shù)組之前定義了 it,因?yàn)檫@兩種情況都是相同的。
這與您現(xiàn)在查詢數(shù)據(jù)庫(kù)不同,但這具有更好的性能,因?yàn)槟槐厝〕鏊袛?shù)據(jù)。
$model = $request->model;
$nameFilter = function ($query) use ($model) {
$query->when($model, function ($query) use ($model) {
$query->where('name', $model);
});
};
$makeAndModels = Make::when($model, function ($query) use ($model) {
$query->where('name', $model);
})->with(
[
'carmodels' => $nameFilter,
'carmodels.fueltype' => $nameFilter,
]
)->first();
更新
僅當(dāng)名稱存在時(shí)才過(guò)濾數(shù)據(jù)庫(kù),Laravel有when()調(diào)用,僅在滿足布爾條件時(shí)才執(zhí)行查詢。
- 1 回答
- 0 關(guān)注
- 112 瀏覽
添加回答
舉報(bào)