在調整授權流程時發現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; } }