Laravel 8 參數(shù)分組

2021-07-19 11:12 更新

有時候你需要創(chuàng)建更高級的 where 子句,例如「where exists」或者嵌套的參數(shù)分組。 Laravel 的查詢構造器也能夠處理這些。下面,讓我們看一個在括號中進行分組約束的例子:

$users = DB::table('users')
           ->where('name', '=', 'John')
           ->where(function ($query) {
               $query->where('votes', '>', 100)
                     ->orWhere('title', '=', 'Admin');
           })
           ->get(); 

你可以看到,通過使用 閉包 寫入 where 的方法來創(chuàng)建一個查詢構造器,用來約束一個分組。這個 閉包 接收一個查詢實例,你可以使用這個實例來設置應該包含的約束。上面的例子將生成以下 SQL 語句:

select * from users where name = 'John' and (votes > 100 or title = 'Admin') 

技巧:你在調(diào)用 orWhere 的時候,應該始終使用分組,以避免應用全局作用出現(xiàn)意外。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號