attributes; $fields = array_keys($attributes); foreach($fields as $key){ if(isset($data[$key])){ $model->$key = $data[$key]; } } $model->save(); $e = $model->getErrors(); if(!empty($e)){ var_dump($e); Yii::$app->end(); } return $model->attributes; } //批量添加 public static function batchAdd($data) { $self = get_called_class(); $model = new $self; foreach($data as $attributes) { $_model = clone $model; $_model->attributes = $attributes; $_model->save(); } } /** * 取表字段 */ public static function getFields() { $self = get_called_class(); $model = new $self; $attributes = $model->attributes; return array_keys($attributes); } /** * 根据主键ID删除一条记录 */ public static function deleteById($id) { $return = self::findOne($id)->delete(); return $return; } /** *根据条件删除一条或多条记录 */ public static function deleteByCondition($condition) { if(empty($condition)) return 0; $where = array(); $variable = array(); foreach($condition as $key => $val){ $where[] = $key.'=:'.$key; $variable[':'.$key] = $val; } $whereString = implode(' and ',$where); $count = self::deleteAll($whereString,$variable); return $count; } /** * 根据主键ID更新一条记录 * @param $id * @param $data * @return array 更新成功返回status:true,失败返回status:false;更新的字段在data内(非表字段会被删除) */ public static function updateById($id, $data) { $self = get_called_class(); $model = new $self; $attributes = $model->attributes; $fields = array_keys($attributes); foreach($data as $key => $val){ if(in_array($key, $fields) == false){ unset($data[$key]);//删除不需要保存的字段 } } $re = self::updateAll($data,'id=:id',['id' => $id]); if($re == 1){ return ['status'=>true, 'data'=>$data]; } return ['status'=>false, 'data'=>$data]; } /** * 根据条件更新一条或多条记录 */ public static function updateByCondition($condition,$data) { if(empty($condition) || !is_array($condition)){ throw new \Exception("xhBaseModel updateByCondition action's parameter 'condition' is empty or not a array!"); } $where = array(); $variable = array(); foreach($condition as $key => $val){ $where[] = $key.'=:'.$key; $variable[':'.$key] = $val; } $whereString = implode(' and ',$where); $count = self::updateAll($data,$whereString,$variable); return $count; } /** * 根据主键ID查出一条记录 */ public static function getById($id) { return self::find()->where(['id' => $id])->asArray()->one(); } /** *根据条件查出一条记录 */ public static function getByCondition($condition) { return self::find()->where($condition)->asArray()->one(); } /** *根据条件查出多条记录 * *$instant 即时加载的对象名 * */ public static function getAllByCondition($condition, $order = null, $field = '*') { $query = self::find()->select($field)->where($condition); if(isset($order)){ $query->orderBy($order); } return $query->asArray()->all(); } /** * 根据多个主键ID查询多条记录 */ public static function getByIds($ids,$order=null) { $data = []; if(!empty($ids)){ $query = self::find()->where(['id'=>$ids]); if(!empty($order)){ $query->order($order); } $data = $query->asArray()->all(); } return $data; } /** *根据条件查出 总数 */ public static function getCount($condition){ return self::find()->where($condition)->count(); } }