欢迎您访问新疆栾骏商贸有限公司,公司主营电子五金轴承产品批发业务!
全国咨询热线: 400-8878-609

新闻资讯

技术百科

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

作者:穿越時空2025-12-18 00:00:00
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 的核心是“模型即数据表”,写法简洁、语义清晰,配合自动时间戳、批量赋值保护、关系预加载等特性,日常开发效率很高。