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

Lar*el 的 Eloquent ORM 提供了“软删除”功能,允许你标记数据为已删除,而不是真正从数据库中移除。这样可以在需要时恢复数据,同时保持数据完整性。实现软删除非常简单,只需几个步骤即可完成。
要在模型中启用软删除,需执行以下操作:
softDeletes() 方法创建迁移。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
查看详情
你可以通过特定方法访问已被软删除的数据:
// 获取所有用户,包括已删除的 $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
# 软删除
相关文章:
J*aScript中赋值与自增运算符的复杂交互与执行机制
内存检查:在VS Code中调试C++时的内存视图
126邮箱网页版官方入口 126邮箱账号在线登录平台
Golang如何优雅处理error_Golang error处理最佳实践总结
蛙漫官网漫画入口地址_蛙漫在线畅读无广告弹窗
Web Components中自定义开关组件状态同步的常见陷阱与解决方案
漫蛙MANWA漫画主页官方入口 漫蛙漫画最新在线阅读地址
提升Kafka消费者健壮性:会话超时处理与消息处理语义
c++中的std::launder有什么实际用途_c++对象生命周期与指针优化
漫蛙漫画登录站点 漫蛙2正版漫画快速访问
构建轻量级网站内部消息系统:Formspree 集成指南
Golang如何通过reflect获取匿名字段方法_Golang reflect匿名字段方法访问技巧
单12V-2×6实现为RTX 5090供电750W!甚至都没敢跑分
Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口
Win10怎么设置静态IP地址 Win10手动配置IP地址步骤【指南】
苹果手机如何防止被恶意App追踪
c++如何实现单例设计模式_c++线程安全的单例模式写法
在J*a中如何捕获IndexOutOfBoundsException_索引越界异常防护方法说明
高德地图公交到站提醒失败如何解决 高德提醒权限设置
不同用户不同价格! 索尼开启账户个性化定价测试
优化大型XML文件解析:基于Python流式处理的内存高效方案
Python多版本共存与虚拟环境管理深度指南
抖音网页版企业服务中心登录入口_抖音网页版企业登录平台
电脑安装程序提示“错误1722”怎么办_Windows Installer服务问题解决【教程】
在WordPress中通过REST API获取BasicAuth保护的远程文章
汽水音乐在线版入口_汽水音乐网页播放手册
12306选座怎么选到临时改签座_12306改签选座策略与步骤
Lar*el的路由模型绑定怎么用_Lar*el Route Model Binding简化控制器逻辑
抖音从哪里进入网页版_抖音官方入口链接
如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略
C++的std::forward_list怎么用_C++ STL中单向链表容器的特点与应用
修复二维数组索引越界异常:一维循环到二维坐标的正确映射
解决Tabulator日期时间排序问题的专业指南
C++ string find函数返回值npos详解_C++字符串查找失败的判断条件
在命令行怎么运行html项目_命令行运行html项目方法【教程】
必由学登录入口 必由学官方网站在线访问链接
c++ dfs和bfs代码 c++深度广度优先搜索算法
漫蛙漫画网页端入口 漫蛙2官方正版漫画站点
抖音极速版最新版本 抖音极速版官方下载地址
QQ网页版官方账号入口 QQ网页版网页版登录指南
12306选座怎么选到特殊座位_12306特殊座位选择注意事项
Win11文件资源管理器卡顿怎么修 Win11重置资源管理器进程优化响应速度【修复方法】
百度浏览器字体显示异常偏小_百度浏览器字体渲染修复方案
在VS Code中配置和运行Dart程序的完整步骤
Archive of Our Own官网直达 AO3最新可用地址一览
C++如何比较两个字符串_C++ string compare函数与操作符对比
lar*el怎么安全地存储和获取配置文件中的敏感信息_lar*el敏感信息安全存储方法
知音漫客官网漫画下载_知音漫客网页版阅读记录
Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧
vivo手机参数配置怎么增强信号_vivo手机参数配置信号增强方法
*请认真填写需求信息,我们会在24小时内与您取得联系。