Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
发布时间 - 2025-12-17 00:00:00 点击率:次Laravel中delete是实例方法,需先查询模型再删除且不触发事件;destroy是静态方法,通过主键直接删除并触发deleting/deleted事件,适合需要钩子的场景。
在 Laravel 中删除数据库数据是日常开发中常见的操作。Laravel 提供了多种方式来实现数据删除,其中最常用的是 delete 和 destroy 方法。虽然它们都能实现删除功能,但使用场景和调用方式有所不同。
delete 方法:实例上的删除操作
delete 是 Eloquent 模型实例的方法,用于删除已经查询出来的单条记录。
它通常配合查询构造器使用,先获取模型实例,再调用 delete 方法。
示例:
- $user = User::find(1);
- if ($user) {
- $user->delete();
- }
也可以配合条件查询链式调用:
- User::where('status', 'inactive')->delete();
注意:这种情况下虽然用了 delete,但其实是通过查询构造器直接执行 SQL 删除,不会触发模型的 deleting 和 deleted 事件。
destroy 方法:静态批量删除
destroy 是 Eloquent 模型的静态方法,可以根据主键 ID 直接删除一条或多条记录,无需先查询出模型实例。
它会自动触发模型的 deleting 和 deleted 事件,适合需要执行模型钩子的场景。
示例:
- User::destroy(1);
- User::destroy([1, 2, 3]);
- User::destroy(1, 2, 3);
以上三种写法都可以,支持传入多个参数或数组。
主要区别总结
-
调用方式不同:delete 是实例方法,de
stroy 是静态方法。 - 使用前提不同:delete 需要先获取模型对象,destroy 直接通过 ID 删除。
- 是否触发事件:destroy 会触发模型事件;而使用查询构造器调用 delete(如 User::where(...)->delete())不会触发。
- 适用场景不同:如果只是简单删除几条 ID 已知的数据,用 destroy 更方便;如果需要根据复杂条件删除且不关心事件,用查询构造器 + delete 效率更高。
软删除与 forceDelete
如果模型启用了软删除(SoftDeletes),调用 delete 或 destroy 默认只会设置 deleted_at 字段。
要彻底删除数据,需使用 forceDelete 方法:
- $user = User::find(1);
- $user->forceDelete();
基本上就这些。理解 delete 和 destroy 的区别,能帮助你在实际项目中更合理地选择删除方式。
# laravel
# 区别
# sql
# if
# delete
# 对象
# 事件
# 数据库
# 链式
# 的是
# 主键
# 多个
# 都能
# 有所不同
# 只会
# 用了
# 更高
# 三种
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
Laravel如何实现API版本控制_Laravel版本化API设计方案
潮流网站制作头像软件下载,适合母子的网名有哪些?
微信小程序 scroll-view组件实现列表页实例代码
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Laravel如何使用模型观察者?(Observer代码示例)
Laravel如何与Inertia.js和Vue/React构建现代单页应用
香港服务器选型指南:免备案配置与高效建站方案解析
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
无锡营销型网站制作公司,无锡网选车牌流程?
linux top下的 minerd 木马清除方法
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
大型企业网站制作流程,做网站需要注册公司吗?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何用搬瓦工VPS快速搭建个人网站?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
*服务器网站为何频现安全漏洞?
如何在 Pandas 中基于一列条件计算另一列的分组均值
千库网官网入口推荐 千库网设计创意平台入口
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
如何快速上传建站程序避免常见错误?
微信小程序 input输入框控件详解及实例(多种示例)
如何快速搭建虚拟主机网站?新手必看指南
如何用景安虚拟主机手机版绑定域名建站?
PHP正则匹配日期和时间(时间戳转换)的实例代码
Laravel如何升级到最新版本?(升级指南和步骤)
Laravel如何处理和验证JSON类型的数据库字段
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
EditPlus中的正则表达式实战(6)
UC浏览器如何设置启动页 UC浏览器启动页设置方法
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
Laravel如何实现模型的全局作用域?(Global Scope示例)
Laravel如何处理异常和错误?(Handler示例)
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
如何在云服务器上快速搭建个人网站?
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
Thinkphp 中 distinct 的用法解析
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
三星、SK海力士获美批准:可向中国出口芯片制造设备
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
如何在阿里云部署织梦网站?
详解Android——蓝牙技术 带你实现终端间数据传输
如何用PHP快速搭建CMS系统?
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南


stroy 是静态方法。