沃梦达 / IT编程 / 数据库 / 正文

yii的CURD操作实例详解

下面就为大家讲解关于“Yii的CURD操作实例详解”完整攻略。

下面就为大家讲解关于“Yii的CURD操作实例详解”完整攻略。

概述

CURD是指在软件开发中,对数据的基本操作,即:增加(Create)、更新(Update)、查询(Retrieve)及删除(Delete)。在Yii中,CURD是经常用到的功能,Yii为开发者提供了很多函数和代码生成器,使开发者能够快速地开发出CURD功能。

Yii的CURD操作方式

在Yii中实现CURD操作有两种方式:一种是使用ActiveRecord来实现CURD,另一种是使用Query Builder来实现CURD。

使用ActiveRecord实现CURD

在Yii中,我们通过继承yii\db\ActiveRecord来实现Active Record模式。Active Record 模式是一种最基本的、最简单的 ORM 模式,它的最大特点就是将数据库中的表映射到了一个类中。

下面我们通过一段示例代码来了解使用ActiveRecord实现CURD的具体步骤:

  1. 创建一个模型
// 在models目录下创建一个User模型,继承yii\db\ActiveRecord类
class User extends \yii\db\ActiveRecord
{
    // 定义表名
    public static function tableName()
    {
        return '{{%user}}';
    }
}

上面的代码中,我们创建了一个User模型,并继承了yii\db\ActiveRecord。定义了模型对应的数据表名为{{%user}}。

  1. 插入数据
$user = new User();
$user->username = 'jack';
$user->email = 'jack@example.com';
$user->save();

将以上代码放到Action中,通过运行,我们可以在数据库的user表中插入一条数据。

  1. 修改数据
$user = User::findOne(1);
$user->username = 'tom';
$user->email = 'tom@example.com';
$user->save();

将以上代码放到Action中,通过运行,我们可以在数据库的user表中修改id为1的数据。

  1. 查询数据
$user = User::findOne(1);
echo $user->username;
echo $user->email;

将以上代码放到Action中,通过运行,我们可以查询到id为1的用户的username和email。

  1. 删除数据
$user = User::findOne(1);
$user->delete();

将以上代码放到Action中,通过运行,可以删除id为1的用户。

使用Query Builder实现CURD

使用Query Builder实现CURD,需要使用yii\db\Query类。Query Builder的最大优势是能够使用链式调用,使得代码更加简洁。

下面我们通过一段示例代码来了解使用Query Builder实现CURD的具体步骤:

  1. 插入数据
$connection = Yii::$app->db;
$connection->createCommand()->insert('user', [
    'username' => 'jack',
    'email' => 'jack@example.com',
])->execute();

将以上代码放到Action中,通过运行,我们可以在数据库的user表中插入一条数据。

  1. 修改数据
$connection = Yii::$app->db;
$connection->createCommand()->update('user', [
    'username' => 'tom',
    'email' => 'tom@example.com',
], 'id = 1')->execute();

将以上代码放到Action中,通过运行,我们可以在数据库的user表中修改id为1的数据。

  1. 查询数据
$connection = Yii::$app->db;
$query = new Query();
$user = $query->select('username, email')->from('user')->where(['id' => 1])->one($connection);
echo $user['username'];
echo $user['email'];

将以上代码放到Action中,通过运行,我们可以查询到id为1的用户的username和email。

  1. 删除数据
$connection = Yii::$app->db;
$connection->createCommand()->delete('user', 'id = 1')->execute();

将以上代码放到Action中,通过运行,可以删除id为1的用户。

以上就是使用ActiveRecord和Query Builder实现CURD的全部步骤。

总结

在这篇文章中,我们介绍了Yii中实现CURD操作的两种方式:使用ActiveRecord和使用Query Builder。两种方式各有优劣,具体使用还需根据具体的业务需求进行选择。同时,我们也通过示例代码,详细讲解了如何使用ActiveRecord和Query Builder来完成CURD操作。

本文标题为:yii的CURD操作实例详解