W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
有時(shí)候你需要?jiǎng)?chuàng)建更高級(jí)的 where 子句,例如「where exists」或者嵌套的參數(shù)分組。 Laravel 的查詢構(gòu)造器也能夠處理這些。下面,讓我們看一個(gè)在括號(hào)中進(jìn)行分組約束的例子:
$users = DB::table('users')
->where('name', '=', 'John')
->where(function ($query) {
$query->where('votes', '>', 100)
->orWhere('title', '=', 'Admin');
})
->get();
你可以看到,通過(guò)使用 閉包
寫入 where
的方法來(lái)創(chuàng)建一個(gè)查詢構(gòu)造器,用來(lái)約束一個(gè)分組。這個(gè) 閉包
接收一個(gè)查詢實(shí)例,你可以使用這個(gè)實(shí)例來(lái)設(shè)置應(yīng)該包含的約束。上面的例子將生成以下 SQL 語(yǔ)句:
select * from users where name = 'John' and (votes > 100 or title = 'Admin')
技巧:你在調(diào)用
orWhere
的時(shí)候,應(yīng)該始終使用分組,以避免應(yīng)用全局作用出現(xiàn)意外。
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)系方式:
更多建議: