yii2 mysql model_YII2 MYSQL数据库CURD增删改查

/*==================== 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 ================================*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值