Active Record (活动记录,以下简称AR)提供了一个面向对象的接口, 用以访问数据库中的数据。
声明 AR 类
要想声明一个 AR 类,你需要扩展 yii\db\ActiveRecord 基类, 并实现 tableName
方法,返回与之相关联的的数据表的名称:
<?php namespace app\models; use yii\db\ActiveRecord; class BasicUser extends ActiveRecord { public static function tableName(){ return "{{%test}}"; //自动补齐表前缀 } }
然后在控制器中使用AR类即可
<?php namespace app\controllers; use app\models\BasicUser; use yii\web\Controller; use app\models\UserForm; use yii\web\Response; class UserController extends Controller{public function actionIndex(){/* //通过new方法得到的AR对象,save()方法执行插入操作 $model=new BasicUser(); $model->nickname='aaa'; $model->save(); */ //简单查询 //$model=BasicUser::find()->where(['id'=>5])->asArray()->all(); //in查询 /* $model=BasicUser::findAll([1,2]) ; foreach($model as $k=>$v){ echo $v->username.'|'.$v->password; } */ //通过查询获得的AR对象,save()方法执行更新操作 /* $model=BasicUser::findOne(2); $model->username='jay'; $model->save(); */ //删除id为22的记录 /* $model=BasicUser::findOne(22); $model->delete(); */ //更新所有 //BasicUser::updateAll(['password'=>'11111']); //开始事务 $trans=\yii::$app->db->beginTransaction(); try{ $model=new BasicUser(); $model->username='ddddw32'; $model->password='123'; $model->nickname='取个名字好难'; $model->rest=100000; $model->save(); BasicUser::updateAll(['rest'=>100]); $trans->commit(); } catch(Exception $e){ $trans->rollBack(); } //echo json_encode($model,JSON_UNESCAPED_UNICODE ); // return $this->render('index');}}