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