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