什么是 Eloquent ORM
Laravel 内置了名为 Eloquent 的对象关系映射器(ORM)。 Eloquent 采用 ActiveRecord 模式,用于简化数据库交互。 使用 Eloquent 时,为每张数据库表准备一个对应的「模型」类。 通过模型可以完成记录的查询、插入、更新与删除。使用 Eloquent 之前,请先在
config/database.php 中配置数据库连接。
默认使用 .env 中的 DB_* 设置。创建模型
使用make:model Artisan 命令生成新模型:
app/Models:
模型与表的对应
Eloquent 会根据类名推断表名:将类名转换为下划线复数形式。
不符合命名约定时,可在模型中定义
$table 属性:
时间戳
Eloquent 默认自动维护created_at 和 updated_at。
在迁移中调用 $table->timestamps() 即可,保存或更新时会自动写入。
关闭自动维护:
批量赋值保护
批量保存数据时需要配置批量赋值保护。fillable
用$fillable 指定允许批量赋值的列:
guarded
反向指定禁止赋值的列使用$guarded:
Eloquent 查询执行流程
User::where()->get() 的内部流程如下:
基本 CRUD
读取
创建
需要设置$fillable:
更新
删除
基础查询方法
实践示例:使用 Post 模型
一个基于迁移创建的posts 表的控制器示例:
模型事件生命周期
调用save() 时触发事件的顺序如下。新建与更新触发不同的事件,saving、saved 在两种情况下都会触发。
下一步
迁移
回顾如何通过迁移创建 Eloquent 所用的数据表。