信息发布→ 登录 注册 退出

Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)

发布时间:2025-12-18

点击量:
Laravel 中 Eloquent ORM 以模型映射数据表,通过迁移创建表,支持链式查询(如 all、find、where)、create/save/update 增改操作(需 fillable 白名单)、destroy/delete 删除(含软删除),语义清晰高效。

在 Laravel 中,Eloquent ORM 是默认的数据库操作方式,它让数据库交互变得像操作 PHP 对象一样自然。只要模型定义正确,CRUD 操作几行代码就能完成。

创建模型和迁移

先生成模型和对应的数据表迁移:

  • php artisan make:model Post -m —— 创建 Post 模型和 create_posts_table 迁移
  • 编辑迁移文件,在 up() 方法中定义字段,比如:
    $table->string('title');
    $table->text('content');
    $table->timestamps();
  • 运行 php artisan migrate 创建数据表

读取(Read):查询数据

Eloquent 提供链式查询方法,返回模型实例或集合:

  • Post::all() —— 获取全部文章
  • Post::find(1) —— 根据主键查单条(查不到返回 null)
  • Post::where('status', 'published')->get() —— 条件查询,返回集合
  • Post::firstWhere('slug', 'hello-world') —— 查第一条匹配记录

新增(Create)与更新(Update)

两种常用方式:静态方法 or 实例方法

  • 新增
    $post = Post::create(['title' => '新文章', 'content' => '正文']);
    注意:模型需设置 $fillable 白名单,如 protected $fillable = ['title', 'content'];
  • 更新
    $post = Post::find(1);
    $post->title = '已修改标题';
    $post->save();

    或直接用 Post::where('id', 1)->update(['title' => '批量改标题']);

删除(Delete)

支持软删除和硬删除:

  • Post::destroy(1) —— 根据主键删除(可传数组批量删)
  • $post->delete() —— 实例调用删除
  • 启用软删除:在模型中加 use SoftDeletes;,并添加 deleted_at 字段到迁移中;此时 delete() 不真正删数据,只标记时间

基本上就这些。Eloquent 的核心是“模型即数据表”,写法简洁、语义清晰,配合自动时间戳、批量赋值保护、关系预加载等特性,日常开发效率很高。

标签:# 链式  # 加载  # 几行  # 单条  # 中加  # 第一条  # 很高  # 两种  # 就能  # 主键  # php  # 数据库  # table  # 对象  # delete  # protected  # NULL  # String  # laravel  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!