namespace app\models;
use yii\db\ActiveRecord;
use yii\db\Query;
class BaseModel extends ActiveRecord
{
protected $tableName;
public function insertData($data)
{
$this->getDb()->createCommand()->insert($this->tableName, $data)->execute();
return \Yii::$app->db->getLastInsertID();
}
public function updateData($data, $condition, $params = [])
{
return $this->getDb()->createCommand()->update($this->tableName, $data, $condition, $params)->execute();
}
public function deleteData($condition, $params = [])
{
return $this->getDb()->createCommand()->delete($this->tableName, $condition, $params)->execute();
}
public function getValue($field, $condition, $params = [])
{
$query = new Query();
return $query->select($field)
->from($this->tableName)
->where($condition, $params)
->createCommand($this->getDb())
->queryScalar();
}
public function getOne($condition, $field = '*', $params = [])
{
$query = new Query();
return $query->select($field)
->from($this->tableName)
->where($condition, $params)
->createCommand($this->getDb())
->queryOne();
}
/**
* @param $condition
* @param array $params
* @param string $field
* @return array
*/
public function getAll($condition, $field = '*', $params = [])
{
$query = new Query();
return $query->select($field)
->from($this->tableName)
->where($condition, $params)
->createCommand($this->getDb())
->queryAll();
}
public function getAllByPage($condition, $field = '*', $params=[],$orderBy = ['id'=>SORT_ASC],$page=1,$pageSize=3)
{
$offset = ($page - 1) * $pageSize;
$queryObject = new Query();
$query = $queryObject->select($field)
->from($this->tableName)
->where($condition,$params)
->offset($offset)
->limit($pageSize)
->orderBy($orderBy);
$count = clone $query;
$count = $count->count();
$query = $query->createCommand($this->getDb())->queryAll();
return ['items'=>$query,'total'=>$count];
}
}
yii2 db基类参考
最新推荐文章于 2021-03-19 18:24:12 发布