ThinkPHP6,where和whereLike同时用踩坑记录
ThinkPHP6,where和whereLike同时用踩坑记录。。。
// 以下示例共用条件 $where_or=[]; $where_or_i=[]; $where_or_i[]='普通,%'; $where_or_i[]='%,普通,%'; $where_or_i[]='%,普通'; $where_or_i[]='普通'; $where_or[]=$where_or_i;
  
方案1,所有条件写到一个数组里 --  可行  
// 示例:
$where[]=['id','>',0];
$cond_t=['flag','like',$where_or,'OR'];
$where[]=$cond_t;
$list=(new User)->where($where)->column('id');方案2,whereLike改用where,like写到里面,实质应该和1一样 -- 可行
// 示例:
$list=(new User)->where('id','>',0)->where('flag','like',$where_or,'OR')->column('id');方案3,where和whereLike同时用 --  不可行  
// 示例:
$list=(new User)->where('id','>',0)->whereLike('flag',$where_or,'OR')->column('id');同时用,会导致where条件和whereLike的条件连接词是 or ( 实际想要的连接词是 and ),即生成的sql语句为
SELECT `id` FROM `user` WHERE ( `id` > 0 OR (`flag` LIKE '普通' OR `flag` LIKE '%,普通' OR `flag` LIKE '普通,%' OR `flag` LIKE '%,普通,%') )
**若需要的就是方案3这样的,可以不必理会。
