<?php namespace app\controllers; use app\models\User; use app\models\UserInfo; use app\models\Users; use yii\web\Controller; use yii\web\NotFoundHttpException; class UserController extends Controller { // 取出所有记录 取出一条记录 计算总数量 指定字段为索引 原生SQL 快速查询 public function actionIndex() { // 获取所有数据 $users = Users::find()->orderBy('id desc')->all(); //获取一条数据 $user = Users::find()->where(['id' => 1])->one(); // 统计数量 $count = Users::find()->count(); // 指定字段名为索引 $user = Users::find()->orderBy('id desc')->indexBy('id')->all(); // 以原生SQL查询 $user = Users::findBySql("select name from user")->all(); // 快速查询一条记录 $user = Users::findOne(1); // 查询多条记录 $users = Users::findAll(['name' => 'xxx']); // 以数组形式获取数据 $users = Users::find(1)->asArray()->all(); // 批量获取数据, 避免大数量占用更多的内存,查询方式 foreach (Users::find()->asArray()->batch(1) as $batch) { var_dump($batch); } } public function actionMoney() { $user = Users::findOne(4); $userInfo = $user->userInfo; $userAllInfo = $user->items; $result = Users::find()->select(['id','address'])->with('userAllInfo')->asArray()->all(); $users = Users::findOne(2); // 关联查询指定条件查询 $result = $users->getUserAllInfo()->where('money > 110')->asArray()->all(); $result = Users::find()->innerJoinWith('userInfo', FALSE)->orderBy('user.id desc')->asArray()->all(); } public function actionSave() { $user = Users::findAll(1); // 更新一条记录 $user->name = '张三'; $result = $user->save(); // 插入一条记录 $user = new Users(); $user->name = '李四'; $user->email = 'lisi@qq.com'; $user->address = '湖北'; $result = $user->save(); // 删除一条记录 $user = Users::findOne(1); $result = $user->delete(); // 删除多条记录 $result = Users::deleteAll('id > :id', [':id' => 5]); var_dump($result); }}
<?php namespace app\models; use yii\db\ActiveRecord; class Users extends ActiveRecord { /** * 关联查询, 一对一查询 * @return \yii\db\ActiveQuery */ public function getUserInfo() { return $this->hasOne(UserInfo::className(), ['u_id' => 'id']); } /** * 一对多查询 * @param int $money 默认查询money大于100的记录 * @return \yii\db\ActiveQuery */ public function getUserAllInfo() { return $this->hasMany(UserInfo::className(), ['u_id' => 'id']); } /** * 多个表查询,item为中间表, user_info是UserInfo表中字段关联, user_id跟user表中的id关联 * @return $this */ public function getItems() { return $this->hasMany(UserInfo::className(), ['u_id' => 'user_info']) ->viaTable('item', ['user_id' => 'id']); } }
yii2-Active Record curd
最新推荐文章于 2022-03-06 05:36:42 发布