yii2-Active Record curd

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值