W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
有時(shí)候你可能想要子句只適用于某個(gè)情況為真時(shí)才執(zhí)行查詢。例如你可能只想給定值在請(qǐng)求中存在的情況下才應(yīng)用 where
語句。 你可以通過使用 when
方法來實(shí)現(xiàn):
$role = $request->input('role');
$users = DB::table('users')
->when($role, function ($query, $role) {
return $query->where('role_id', $role);
})
->get();
when
方法只有在第一個(gè)參數(shù)為 true
的時(shí)候才執(zhí)行給的的閉包。如果第一個(gè)參數(shù)為 false
,那么這個(gè)閉包將不會(huì)被執(zhí)行
你可以傳遞另一個(gè)閉包作為 when
方法的第三個(gè)參數(shù)。 該閉包會(huì)在第一個(gè)參數(shù)為 false
的情況下執(zhí)行。為了說明如何使用這個(gè)特性,我們來配置一個(gè)查詢的默認(rèn)排序:
$sortBy = null;
$users = DB::table('users')
->when($sortBy, function ($query, $sortBy) {
return $query->orderBy($sortBy);
}, function ($query) {
return $query->orderBy('name');
})
->get();
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: