新闻中心
Lar*el如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
Lar*el软删除通过添加deleted_at字段和使用SoftDeletes trait实现,调用delete()时填充该字段而不真正删除数据,查询默认忽略已删除记录,可用withTrashed()或onlyTrashed()获取包含或仅含已删除数据,restore()方法可恢复数据,forceDelete()则永久删除记录。

Lar*el 的 Eloquent ORM 提供了“软删除”功能,允许你标记数据为已删除,而不是真正从数据库中移除。这样可以在需要时恢复数据,同时保持数据完整性。实现软删除非常简单,只需几个步骤即可完成。
启用软删除功能
要在模型中启用软删除,需执行以下操作:
- 在对应的数据表中添加 deleted_at 字段,通常使用
softDeletes()方法创建迁移。 - 在 Eloquent 模型中引入 Illuminate\Database\Eloquent\SoftDeletes trait。
php artisan make:migration add_deleted_at_to_users_table --table=users
在迁移文件中:
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->softDeletes();
});
}
然后运行迁移命令:
php artisan migrate
接着在模型中使用 SoftDeletes trait:
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class User extends Model
{
use SoftDeletes;
}
执行软删除操作
启用软删除后,调用模型的 delete() 方法不会真正删除记录,而是将 deleted_at 字段设置为当前时间戳。
$user = User::find(1); $user->delete(); // 此时 deleted_at 被填充,数据仍存在于数据库
查询时,Eloquent 会自动过滤掉已软删除的记录,即默认查询只返回未删除的数据。
星辰Agent
科大讯飞推出的智能体Agent开发平台,助力开发者快速搭建生产级智能体
378
查看详情
查询软删除的数据
你可以通过特定方法访问已被软删除的数据:
- withTrashed():获取包括已删除在内的所有记录。
- onlyTrashed():仅获取已软删除的记录。
// 获取所有用户,包括已删除的 $users = User::withTrashed()->get(); // 只获取已删除的用户 $trashedUsers = User::onlyTrashed()->get();
恢复软删除的数据
使用 restore() 方法可以将软删除的数据恢复,即将 deleted_at 字段清空。
// 恢复单个已删除的用户
$user = User::withTrashed()->find(1);
$user->restore();
// 批量恢复
User::onlyTrashed()->where('active', 0)->restore();
注意:调用 restore() 后,deleted_at 值会被设为 null,该记录重新参与常规查询。
强制删除(永久删除)
如果希望彻底删除某条记录,绕过软删除机制,可使用 forceDelete() 方法。
$user = User::find(1); $user->forceDelete(); // 数据从数据库中永久移除
对已软删除的记录再次调用 forceDelete() 也会将其永久删除。
基本上就这些。Lar*el 软删除机制简洁实用,适合需要保留历史数据或支持数据回滚的场景。只要记得加字段、引入 trait,并合理使用查询作用域,就能轻松管理删除与恢复逻辑。
以上就是Lar*el如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法的详细内容,更多请关注php中文网其它相关文章!
# 就能
# 衢州seo网络推广代理价格
# 塑料挤出机免费推广网站
# 天津seo公司竞价公告
# 物流唐山网站优化公司
# seo外链推广厂商定制
# 优化网站关键词排名象客
# dreamweaver网站建设教程视频
# 视频推广网站有那个人
# 山西太原seo
# 顺德商品seo优化代理
# 只需
# 已被
# laravel
# 你可以
# 也会
# 如何实现
# 移除
# 数据库中
# 如何使用
# 作用域
# 数据恢复
# ai
# php
# 软删除
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
从OpenAI API响应中高效提取生成文本
Python vgamepad库按键模拟:正确使用XUSB_BUTTON常量
Android Studio计算器C键功能异常排查与修复教程
Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口
Golang如何安装Swagger工具_GoSwagger文档生成环境
黑鲨3Pro怎样在相册开漫画风滤镜_iPhone黑鲨3Pro相册开漫画风滤镜【趣味滤镜】
C++ explicit关键字防止隐式转换_C++构造函数安全规范
css链接悬停下划线样式如何自定义_使用::after结合content和transition
微信聊天记录怎么加密_微信聊天记录加密方法
J*aScript数据结构转换:将对象数组按类别分组
AWS EC2实例间SQL Server连接超时:安全组配置与故障排除指南
苹果手机如何防止被恶意App追踪
QQ邮箱在线使用入口 QQ邮箱个人账号网页版登录
如何优雅地解决Livewire文件上传难题?SpatieLivewireFilepond让一切变得简单
如何在网页中实现特定地点的随机图片展示
CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略
J*a最大堆Heapify方法修复:索引计算与边界条件深度解析
在Pyomo中实现基于变量的条件约束:Big-M方法详解
小米14应用无法联网原因分析_小米14网络权限修复
漫蛙漫画登录站点 漫蛙2正版漫画快速访问
迅雷下载到U盘速度很慢怎么办_迅雷U盘下载慢优化方法
J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析
wps文字怎么插入目录并自动更新_wps文字如何插入目录并自动更新方法
Python中如何避免重复条件判断:利用数据结构实现动态逻辑
汽水音乐在线版入口_汽水音乐网页播放手册
Win11怎么开启高性能模式_Windows 11电源计划优化设置
win11如何加载ICC颜色配置文件 Win11校色文件安装与显示器色彩管理【指南】
深入理解J*a编译器的兼容性选项:从-source到--release
qq游戏免费畅玩入口_qq游戏电脑版快速启动
今日头条怎么同步内容到抖音_今日头条内容同步到抖音教程
怎么在html里运行vbs脚本_html中运行vbs脚本方法【教程】
win11怎么查看应用耗电情况 Win11电池设置查看应用能耗排行榜【优化】
Yandex官网搜索引擎免登录_俄罗斯Yandex一键直达入口
汽水音乐车机版横屏版7.1 汽水音乐车机版横屏版下载入口
解决J*aScript中重复选择项的确认对话框显示问题
斑马英语APP如何开启夜间护眼阅读_斑马英语APP夜间模式与低蓝光设置教程
微信商城在哪里打开【步骤】
单射、满射与双射的关系 一文理清所有逻辑
TikTok国际版官网直达_TikTok国际版官网直达进入在线观看
PHP 枚举:根据字符串获取枚举案例的策略与实现
解决移动端滚动问题的overflow属性应用指南
如何在CSS中使用浮动制作导航栏_float实现水平菜单
qq游戏大厅官方下载_qq游戏免费下载安装入口
探索高级语言到原生C/C++的转译:挑战与内存管理策略
大象笔记网页版入口 印象笔记网页版登录入口
在命令行怎么运行html项目_命令行运行html项目方法【教程】
PDF怎么合并PDF并保持格式_PDF合并文件保持排版教程
京东京造J1和网易云音乐氧气真无线有什么不同_国产电商蓝牙耳机音质对比
AO3镜像入口大全 AO3网页版内容访问全集
知乎APP怎么管理已购盐选内容_知乎APP盐选内容购买记录与查看方法


2025-12-04
浏览次数:次
返回列表
r::onlyTrashed()->get();