1.用到闭包查询
//想实现的语句
SELECT * FROM `usertemplate` WHERE ( `subjects_id` = 10 AND ( `uid` = 233 OR `is_default` = 1 ) )
//whereor条件
$map1 = [
['uid', '=', $uid]
];
$map2 = [
['is_default', '=', 1],
];
$whereOr = [$map1,$map2];
//where条件
$where = [];
$where[] = ['subjects_id','=',$subjects_id];
//封装的select方法
public function db_select($where=[],$whereOr=[],$fields="",$orders=""){
return $this
->where($where)
->where(function ($query) use($whereOr) {
$query->whereOr($whereOr);
})
->field($fields)
->order($orders)
->select();
}
//在控制器调用
$UserTemplate->db_select($where,$whereOr,'id');