且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ThinkPHP:where语句加括号

更新时间:2022-06-11 20:23:06

文档: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' )