Active Record 基础

1. Active Record

1.1 Active Record模式
在Active Record模式中,对象中既有持久储存在database中的数据,也有针对数据的操作。Active Record模式把数据存储逻辑作为对象的一部分,处理对象的用户知道如何把数据写入database,以及从database中读出数据。
1.2 ORM: Object-Relational Mapping对象关系映射
ORM是一种技术手段,把应用程序中的*对象*和**关系型数据库管理系统**(RDBMS:Relational Database Management System)的*表单*联系起来。通过ORM,应用程序中的对象的属性和关系能直接从database中存储或获取,而不用通过SQL语句。
1.3 Active Record作为ORM的框架
-表示model与其data
-表示models之间的关系
-表示相关models之间的继承结构
-在存入database之前,验证models
-用面向对象的方法操作database

2. Active Record中的“多约定少配置”原则( Convention over Configuration)

2.1 naming conventions

Rails通过把model类名转换成复数,来查找对应的数据表。例:model类为Book,对应的数据表就是books。
-数据表(database table):复数,下划线分割单词(例:book_clubs)
-模型类名(model class):单数,每个单词首字母大写(例:BookClub)

2.2 schema convention(模式约定)

Active Record对数据表的列属性也做了相应的命名约定
-外键(foreign keys):使用singularized_table_name_id形式命名,例:item_id, order_id。创建model**关联**后,Active Record会查找该列属性。
-主键(primary keys):Active Record将一个列名为“id”的数字列作为数据表的主键,当使用Active Record Migrations来创建表单后,这一列将会被自动创建。

3 创建Active Record Models

4 不使用约定命名(待)

5 CRUD:读写数据

5.1 Create

例:User模型类有两个属性:name和occupation,调用create方法将实例化一个对象,并把该对象对应的记录存入数据库中:

user = User.create(name: "David", occupation: "Code Artist")

使用new方法可以实例化一个对象,但不会保存。调用user.save可以把记录保存入数据库:

user = User.new
user.name = "David"
user.occupation = "Code Artist"
5.2 Read
# return a collection with all users
users = User.all
# return the first user
user = User.first
# return the first user named David
david = User.find_by(name: 'David')
# find all users named David who are Code Artists and sort by created_at
# in reverse chronological order
users = User.where(name: 'David', occupation: 'Code Artist').order('created_at DESC')
5.3 Update
user = User.find_by(name: 'David')
user.name = 'Dave'
user.save
5.4 Delete
user = User.find_by(name: 'David')
user.destroy

6 Validation数据验证

把数据存入数据库前需要进行验证,所以调用create,save,update这三个方法时会做数据验证,验证失败则返回false,数据库不做修改。

7 Callbacks回调

回调允许在模型生命周期里绑定代码到特定事件,当事件发生时,将执行这些代码。

8 Migrations数据迁移

Rails提供一种DSL(domain-specific language)语言来管理数据库的模式(schema)。
Rails记录哪些文件被应用到数据库,并提供了回滚(rollback)功能。
创建数据库表单时候,运行:

rake db:migrate

撤销时运行:

rake db:rollback
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Yii2框架的Active Record是一个强大的ORM(对象关系映射)工具,它可以将数据库中的表映射成为Yii2框架中的PHP类,并且提供了一系列的API来进行对数据库的操作。 下面是一些常用的Active Record操作: 1. 查询单条记录: ```php $model = ModelName::findOne($id); ``` 2. 查询多条记录: ```php $models = ModelName::find()->where(['attribute' => 'value'])->all(); ``` 3. 插入记录: ```php $model = new ModelName(); $model->attribute = 'value'; $model->save(); ``` 4. 更新记录: ```php $model = ModelName::findOne($id); $model->attribute = 'new value'; $model->save(); ``` 5. 删除记录: ```php $model = ModelName::findOne($id); $model->delete(); ``` 6. 自定义查询: ```php $models = ModelName::find()->select(['attribute1', 'attribute2'])->asArray()->all(); ``` 上述代码中,`ModelName`是你定义的Active Record类名,`findOne()`方法用于查找单条记录,`find()`方法用于查找多条记录,`where()`方法用于设置查询条件,`all()`方法返回所有查询结果,`new`关键字用于创建新的Active Record实例,`save()`方法用于保存数据到数据库中,`delete()`方法用于删除数据,`select()`方法用于指定查询的列,`asArray()`方法用于返回查询结果数组而不是Active Record对象。 需要注意的是,Active Record还提供了一些高级的操作,如关联查询、批量操作、查询缓存等。详细的信息可以参考Yii2官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值