数据库交互ActiveRecord

来源:互联网 发布:北控集团工资待遇知乎 编辑:程序博客网 时间:2024/06/17 09:22

Active Record (活动记录,以下简称AR)提供了一个面向对象的接口, 用以访问数据库中的数据。

声明 AR 类

要想声明一个 AR 类,你需要扩展 yii\db\ActiveRecord 基类, 并实现 tableName 方法,返回与之相关联的的数据表的名称:

在models下创建 BasicUser.php

<?php     namespace    app\models;         use          yii\db\ActiveRecord;        class BasicUser extends ActiveRecord {            public static  function tableName(){                        return "{{%test}}"; //自动补齐表前缀    }}

然后在控制器中使用AR类即可

<?phpnamespace  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');
}}
  

0 0