天天看點

ThinkPHP:where語句加括号

文檔: https://www.kancloud.cn/manual/thinkphp6_0/1037566 每個 閉包

條件兩邊會自動加上括号

實作代碼

// tb_article
$query = ArticleModel::newQuery();

$query->where(function ($qr) {
    $qr->where('name', '=', 'Tom')
        ->where('age', '<', 30);
});

// use 使用外層作用域變量
$name = 'Jack';
$query->whereOr(function ($qr) use ($name) {
    $qr->where('name', '=', $name)
        ->where('age', '>', 23);
});

$query->buildSql();      

輸出語句

SELECT * FROM `tb_article` 
WHERE ( `name` = 'Tom' AND `age` < '30' ) 
OR ( `name` = 'Jack' AND `age` > '23' )