[BUG反饋]AuthGroupModel的CheckId有BUG

發表於2020-04-04
在調整授權流程時發現OneThink的原本程式碼有一個BUG。
程式碼如下:
    public function checkId($modelname,$mid,$msg = '以下id不存在:'){
        //歷史程式碼
        //if(is_array($mid)){ 
        //    $count = count($mid);
        //    $ids   = implode(',',$mid);
       // }else{
        //    $mid   = explode(',',$mid);
        //    $count = count($mid);
        //    $ids   = $mid;  // <----- 這裡 上面已經轉換為陣列了,已經型別發生了變化
        //}
        //修改
        if(!is_array($mid)){ $mid   = explode(',',$mid);} $count = count($mid);
        $ids   = implode(',',$mid);  $s = M($modelname)->where(array('id'=>array('IN',$ids)))->getField('id',true);
        if(count($s)===$count){
            return true;
        }else{
            $diff = implode(',',array_diff($mid,$s));
            $this->error = $msg.$diff;
            return false;
        }
    }
回覆

相關文章