删除会员的优雅方式,避免留存脏数据

我们在做项目的时候,一般在初期就会建立好账号体系,后来随着需求的增多,可能会忽略这个模块。
当我们要做删除用户功能时,可能考虑的比较全面,需要把已有的业务逻辑,连同用户一起删除。
但是后续的需求,再增加用户关联数据的时候,可能会遗漏掉删除用户这种情况。这样的话,我们就避免不了在业务代码中插入这种查询

$history = History::has('user')->get();

为了避免这种情况的发生,我们可以在项目中增加一个删除用户的事件,以后如果有需要删除用户相关业务数据的时候,只需要修改 EventServiceProvider 文件即可。这样做的好处就是,与你之前建立的账号删除功能 解耦 ,你不需要回顾之前账号系统中的一些逻辑,只需要专注你当前在做的功能即可。

然后我们的业务代码,可以改成:

$history = History::where('user_id', >, 0)->get();
本作品采用《CC 协议》,转载必须注明作者和本文链接
应该解决的是问题,而非提出问题的人
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 3

真的要全部清除的话,弄个触发器也可以 :joy: :joy:

5天前 评论

直接建立一个 UserObserver,监听 deleted 更简单清晰吧!

5天前 评论
tu6ge-php (楼主) 5天前

直接用MySQL里面的外键?级连删除

3天前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!