/*==================== newbaseModel 数据库增删改查方法 start ================================*/
public function newbaseGetOne($condition = [],$orderBy = 'id DESC',$select = array()){$query = self::find()->select($select);$query->orderBy($orderBy);if($condition){$query->where($condition);
}return $query->asArray()->one();
}//获取全部数据
public function newbaseGetAll($condition = [],$orderBy = 'id DESC',$select = array()){$query = self::find()->select($select);$query->orderBy($orderBy);if($condition){$query->where($condition);
}return $query->asArray()->all();
}//通过条件查询多条关联模型记录
public function newbaseGetAllRelation($condition = [],$tables = [],$orderBy = '',$select = array(),$joinType = 'INNER JOIN',$distinct = false){$query = self::find()->select($select);//$query->innerJoinWith($tables);
// $query->with($tables);
// $query->joinWith($tables, true, 'RIGHT JOIN');
$query->joinWith($tables,true,$joinType);$query->orderBy($orderBy);if($distinct == true){$query->distinct();
}if($condition){$query->where($condition);
}return $query->asArray()->all();
}//获取分页数据
public function newbasePageData($condition = [],$page = 1,$pageSize = 10,$orderBy = 'id DESC',$select = array()){//$select 过滤字段 ['id','field1','field2']
$page = ( $page - 1) ;$query = self::find()->select($select);$provider = newActiveDataProvider(['query' => $query,
'pagination' =>['pageSize' => $pageSize,
'page' => $page,],]);$query->orderBy($orderBy);if($condition){$query->where($condition);
}//pr($query ->createCommand()->getRawSql());
return $provider;
}//获取分页数据 并且 关联模型记录
//$joinType LEFT JOIN ,INNER JOIN RIGHT JOIN
public function newbasePageDataRelation($condition = [],$page = 1,$pageSize = 10,$tables,$orderBy = '',$select = array(),$joinType = 'INNER JOIN',$distinct = false){//$select 字段过滤 如: ['id','field1','field2']
//$tables 关联模型表 如: ['table1','table2']
$page = ( $page - 1);$query = self::find()->select($select);//$query->with($tables);
// $query->joinWith($tables, true, 'RIGHT JOIN');
//$query->innerJoinWith($tables);
$query->joinWith($tables,true,$joinType);$query->orderBy($orderBy);if($distinct == true){$query->distinct();
}$provider = newActiveDataProvider(['query' => $query,
'pagination' =>['pageSize' => $pageSize,
'page' => $page,],]);if($condition){$query->where($condition);
}//pr($query ->createCommand()->getRawSql());
return $provider;
}/*==================== newbaseModel 数据库增删改查方法 end ================================*/
/*==================== baseModel 数据库增删改查方法 start ================================*/
//新增一条数据
public function baseInsertData($data){if(!is_array($data)) {return false;;};$db = \Yii::$app->db;$ok = $db->createCommand()->insert(self::tableName(), $data)->execute();if($ok){//返回自增id
return $db->getLastInsertID();
}else{return false;
}
}//新增一条数据,返回原数据
public function baseCreateData($data){if(!is_array($data)) {return false;};$db = \Yii::$app->db;$ok = $db->createCommand()->insert(self::tableName(), $data)->execute();if($ok){//返回自增id和新增数据
$data['id'] = $db->getLastInsertID();return $data;
}else{return false;
}
}//通过条件查询一条记录
public function baseGetOne($condition = [],$orderBy = 'id DESC',$select = array()){//$condition 搜索条件 如:$condition = ['and'];$condition[] = ['=','id',1];$condition[] = ['LIKE','name','dkh'];
//$select 字段过滤 如: ['id','field1','field2']
$data = self::find()->select($select)->where($condition)->orderBy($orderBy)->asArray()->one();if(empty($data)){$data =[];
}return $data;
}/**
* 通过条件查询一条关联模型记录
* $joinType LEFT JOIN ,INNER JOIN RIGHT JOIN
**/
public function baseGetOneRelation($condition = [],$tables = [],$orderBy = '',$select = array(),$joinType = 'INNER JOIN'){//return self::find()->innerJoinWith($tables)->select($select)->where($condition)->orderBy($orderBy)->asArray()->one();
$data = self::find()->joinWith($tables,true,$joinType)->select($select)->where($condition)->orderBy($orderBy)->asArray()->one();if(empty($data)){$data =[];
}return $data;
}//获取全部数据
public function baseGetAll($condition = [],$orderBy = 'id DESC',$select = array()){$data = self::find()->select($select)->where($condition)->orderBy($orderBy)->asArray()->all();if(empty($data)){$data =[];
}return $data;
}//通过条件查询多条关联模型记录
//$joinType LEFT JOIN ,INNER JOIN RIGHT JOIN
public function baseGetAllRelation($condition = [],$tables = [],$orderBy = '',$select = array(),$joinType = 'INNER JOIN'){//return self::find()->joinWith($tables)->select($select)->where($condition)->orderBy($orderBy)->asArray()->all();
//$data = self::find()->innerJoinWith($tables)->select($select)->where($condition)->orderBy($orderBy)->asArray()->all();
$data = self::find()->joinWith($tables,true,$joinType)->select($select)->where($condition)->orderBy($orderBy)->asArray()->all();if(empty($data)){$data =[];
}return $data;
}//根据id删除一条数据
public function baseDeleteById($id){$this->id = $id;//return $this->findOne($id)->delete();
$status = self::findOne($id)->delete();if(empty($status)){return false;
}else{return true;
}
}//删除指定条件的数据
public function baseDeleteAll($condition =[]){if(empty($condition) || !is_array($condition)) {return false;};$status = self::deleteAll($condition);if(empty($status)){return false;
}else{return true;
}
}//执行原生sql语句,一般用于更新,批量新增,删除数据
public function baseExecuteSql($sql){$db = \Yii::$app->db;//在调用的地方做执行是否成功的判断
$status = $db->createCommand($sql)->execute();if(empty($status)){return false;
}else{return true;
}
}//执行原生sql语句,一般用于查询数据 返回单行
public function baseQueryOneSql($sql){$db = \Yii::$app->db;$data = $db->createCommand($sql)->queryOne();if(empty($data)){$data =[];
}return $data;
}//执行原生sql语句,一般用于查询数据 返回多行
public function baseQueryAllSql($sql){$db = \Yii::$app->db;$data = $db->createCommand($sql)->queryAll();if(empty($data)){$data =[];
}return $data;
}//通过主键查询一条记录
public function baseGetOneByid($id){$model = self::findOne($id);if($model){return $model->attributes;
}else{return array();
}
}//更新符合条件的数据
public function baseUpdateData($data,$condition =[]){if(empty($data)) {return false;};if(empty($condition) || !is_array($condition)) {return false;;};$res = self::updateAll($data,$condition);if($res === false){return false;
}return true;
}//获取分页数据
public function basePageData($condition = [],$page = 1,$pageSize = 10,$orderBy = 'id DESC',$select = array()){//$select 过滤字段 ['id','field1','field2']
$page = ( $page - 1 ) * $pageSize;$data = self::find()->select($select)->where($condition)->offset($page)->limit($pageSize)->orderBy($orderBy)->asArray()->all();if(empty($data)){$data =[];
}return $data;
}//获取分页数据 并且 关联模型记录
//$joinType LEFT JOIN ,INNER JOIN RIGHT JOIN
public function basePageDataRelation($condition = [],$page = 1,$pageSize = 10,$tables = [],$orderBy = '',$select = array(),$joinType = 'INNER JOIN'){//$select 字段过滤 如: ['id','field1','field2']
//$tables 关联模型表 如: ['table1','table2']
// return $this->find()->joinWith($tables)->select($select)->where($condition)->orderBy($orderBy)->offset($page)->limit($pageSize)->asArray()->all();
$page = ( $page - 1 ) * $pageSize;//$data = self::find()->innerJoinWith($tables)->select($select)->where($condition)->orderBy($orderBy)->offset($page)->limit($pageSize)->asArray()->all();
$data = self::find()->joinWith($tables,true,$joinType)->select($select)->where($condition)->orderBy($orderBy)->offset($page)->limit($pageSize)->asArray()->all();//return self::find()->joinWith($tables)->select($select)->where($condition)->orderBy($orderBy)->offset($page)->limit($pageSize)->asArray()->all();
// return self::find()->joinWith($tables)->select($select)->where($condition)->orderBy($orderBy)->offset($page)->limit($pageSize)->createCommand()->getRawSql();
if(empty($data)){$data =[];
}return $data;
}//通过条件查询记录条数
public function baseGetCount($condition = [],$select = array()){$data = self::find()->select($select)->where($condition)->count();return empty($data)?'0':$data;
}//通过条件查询记录总和
public function baseGetSum($condition = [],$field = '',$select = array()){$data = self::find()->select($select)->where($condition)->sum($field);return empty($data)?'0':$data;
}//通过条件查询记录条数 并且 关联模型
//$joinType LEFT JOIN ,INNER JOIN RIGHT JOIN
public function baseGetCountRelation($condition = [],$tables = [],$select = array(),$joinType = 'INNER JOIN'){//return self::find()->innerJoinWith($tables)->select($select)->where($condition)->count();
return self::find()->joinWith($tables,true,$joinType)->select($select)->where($condition)->count();//return self::find()->joinWith($tables)->select($select)->where($condition)->count();
}/*==================== baseModel 数据库增删改查方法 end ================================*/