yii2数据表模型类--Active Record (活动记录)
2017-07-10 22:28:17
•
阅读
打赏
Active Record (活动记录,以下简称AR)提供了一个面向对象的接口, 用来访问数据库中的数据。一个 AR 类关联一张数据表, 每个 AR 对象对应表中的一行,对象的属性(即 AR 的特性Attribute)映射到数据行的对应列。 一条活动记录(AR对象)对应数据表的一行,AR对象的属性则映射该行的相应列。 您可以直接以面向对象的方式来操纵数据表中的数据
连接数据库
AR 用一个 DB connection 对象与数据库交换数据。 默认的,它使用 db 组件作为其连接对象。在应用程序配置文件中设置下 db 组件,
return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=127.0.0.1;dbname=user',
'username' => 'aa',
'password' => 'aa',
],
],
];
如果应用中使用了多个数据库,如果需要给一个 AR 类使用不同的数据库链接(DB connection) ,覆盖 getDb() 方法:
class Userextends ActiveRecord
{
// ...
public static function getDb()
{
return \Yii::$app->db2; // 使用名为 "db2" 的应用组件
}
}
创建 AR 类
要创建一个 AR 类,需要扩展 yii\db\ActiveRecord 基类, 并实现 tableName 方法,返回与之相关联的的数据表的名称:
namespace app\models;
use yii\db\ActiveRecord;
class User extends ActiveRecord
{
/**
* @return string 返回该AR类关联的数据表名
*/
public static function tableName()
{
return 'user';
}
}
访问列数据
AR 把相应数据行的每一个字段映射为 AR 对象的一个个特性变量(Attribute)即一个普通对象的公共属性(public property)。 特性变量的名称和对应字段的名称是一样的。
使用以下语法读取列的值:
// "id" 和 "name" 是 $user 对象所关联的数据表的对应字段名
$id = $user->id;
$name = $user->name;
//要改变列值,只要给关联属性赋新值并保存对象即可:
$user->name = 'aa';
$user->save();
使用gii自动生成AR类
访问gii模块的链接为:
http://127.0.0.1/index.php/gii
详细说明:http://www.yuqingqi.com/yii2/605.html
美景欣赏


相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型