yii2-Active Record curd

来源:互联网 发布:js实现select联动 编辑:程序博客网 时间:2024/05/22 17:31
<?phpnamespace 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);    }

}

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

原创粉丝点击