开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 27 天,点击查看活动详情”
CRUD 操作
接下来还是以 User 模型类为例,使用控制台进行增删改查操作。
创建数据
ORM 中,数据库表中的记录与对象是相对应的,因此创建一个实例对象就可以创建一行数据,实际上使用 new() 方法可以在内存中创建一个实例对象,随后设置该对象的属性,最后必须调用实例对象的 save() 方法最终将数据保存在数据库表中。例如
new() 方法还可以接收 Hash 对象作为参数:
这两种方法的效果完全一致,并且在保存数据时,完全不需要考虑 users 表中的主键 id 的值,它会保存时自动赋值,并且自动递增。
除了new之外,还可以使用 create() 方法新增数据,并且会直接保存不需要再调用 save 方法。
create 方法可以接收多个 Hash 参数的数组,同时创建多条记录:
读取数据
ActiveRecord 中读取数据的方法是 find(),最简单的方式就是通过主键查找,可以传入一个或者多个主键,例如:
如果记录不存在,会抛出 "RecordNotFound" 的异常错误:
除了指定索引查询外,还可以指定条件查询,需要使用到 find_by 方法,支持传入多个条件
还支持 Hash
但是根据执行的 SQL 语句可以看出,find_by 只会返回一个数据,既符合条件的第一个数据,想要查询所有符合条件的数据,需要用到 where() 方法
还可以级联调用 order 方法对输出结果进行排序
其他的查询方法还有,all,first,last 等。