改造前 /** * 这里目前是写死的,每次增减都要改动这里的代码 * @desc 更好的做法之一是,在对应的模型里面写一个方法changeLimitRowsWhere, * 这样未来有多少个表都能不修改这边的算法模板,却又能灵活控制这里的条件 * @param $table * @param $where * @return mixed|string */ public function getWhere($modenum,$where){ if(strpos($modenum,'mode1')!==false){ $where = str_replace('`uid`','a.uid',$where); $where = str_replace('`makeid`','a.makeid',$where); } if(strpos($modenum,'mode2')!==false){ $where = str_replace(' uid',' a.uid',$where); } if(strpos($modenum,'mode3')!==false){ $where .= ' and a.id IN ( SELECT MAX( id ) FROM mode3 GROUP BY name )'; } return $where; }
/** * 这里目前是写死的,每次增减都要改动这里的代码 * @desc 更好的做法之一是,在对应的模型里面写一个方法changeLimitRowsWhere, * 这样未来有多少个表都能不修改这边的算法模板,却又能灵活控制这里的条件 * @param $table * @param $where * @return mixed|string */ public function getWhereLimitRows($modenum,$where){ $model = m($modenum); if(method_exists($model,'changeLimitRowsWhere')){ $where = $model->changeLimitRowsWhere($where); } return $where; }