天天看点

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' )