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


# php  # laravel  # String  # NULL  # protected  # delete  # 对象  # table  # 数据库  # 链式  # 主键  # 就能  # 两种  # 很高  # 第一条  # 中加  # 单条  # 几行  # 加载 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  北京的网站制作公司有哪些,哪个视频网站最好?  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  教学论文网站制作软件有哪些,写论文用什么软件 ?  用yum安装MySQLdb模块的步骤方法  Laravel如何实现多对多模型关联?(Eloquent教程)  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  利用vue写todolist单页应用  PHP 500报错的快速解决方法  打造顶配客厅影院,这份100寸电视推荐名单请查收  java获取注册ip实例  个人摄影网站制作流程,摄影爱好者都去什么网站?  Linux系统运维自动化项目教程_Ansible批量管理实战  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  如何在IIS中配置站点IP、端口及主机头?  如何自定义建站之星模板颜色并下载新样式?  微信小程序 input输入框控件详解及实例(多种示例)  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  如何快速查询网址的建站时间与历史轨迹?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  北京网站制作的公司有哪些,北京白云观官方网站?  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  BootStrap整体框架之基础布局组件  Laravel如何处理文件下载请求?(Response示例)  Laravel如何自定义错误页面(404, 500)?(代码示例)  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  香港服务器租用每月最低只需15元?  大连 网站制作,大连天途有线官网?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  浅谈redis在项目中的应用  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  如何在自有机房高效搭建专业网站?  独立制作一个网站多少钱,建立网站需要花多少钱?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Android实现代码画虚线边框背景效果  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  Android自定义控件实现温度旋转按钮效果  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  什么是javascript作用域_全局和局部作用域有什么区别?  如何挑选优质建站一级代理提升网站排名?  如何为不同团队 ID 动态生成多个“认领值班”按钮  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】