1. 首页
  2. Laravel

用Laravel 5级联软删除

Laravel Soft Cascade是一个软件包,它使使用软删除对相关模型执行软级联删除和恢复变得容易。
包的贡献者Will Bowman写到了他的软件包以及要级联删除相关模型的外键约束的情况,但是您已经配置了软删除:
我一直使用MySQL外键约束来级联删除相关记录。Laravel使在迁移中使用外键变得很容易,将onDelete设置为cascade和walla,您的关系将自动删除。
但是启用软删除时会发生什么?您的数据库从未被告知实际\”删除\”记录,而是更新deleted_at字段。那么级联删除会发生什么呢?什么都没有,你的相关记录都被留下来了。
他的文章概述了他在包中采用的方法,特别是在没有一堆样板代码的情况下轻松配置级联删除:
我的解决方案是在模型中使用事件和数组来告诉它要级联什么,这允许我们简单地向模型添加两行以启用级联删除和还原:
使用包,您可以启用SoftCascadeTrait并配置应软级联删除的关系:
1use AskedioSoftCascadeTraitsSoftCascadeTrait;23protected>
定义关系后,您可以在模型上触发删除或还原,相关模型将与模型一起还原或删除(软):
1User::first()->delete();2User::withTrashed()->first()->restore();了解更多信息
要开始,用composer和auto discovery在Laravel安装软件包,剩下的部分将由它负责:
1composer require askedio/laravel-soft-cascade
查看GitHub repo,并将Bowman的post获取更多信息。

用Laravel 5级联软删除 为WP2原创文章,链接:https://www.wp2.cn/laravel/%e7%94%a8laravel-5%e7%ba%a7%e8%81%94%e8%bd%af%e5%88%a0%e9%99%a4/