laravel - Laravel 观察者 - 删除和 forceDeleted 都被解雇了
问题描述
我在我的模型中使用 SoftDeletes 特征,以及一个对每个事件都非常有用的观察者。
但是当我 forceDelete 一个模型时,deleted 和 forceDeleted 方法都会被触发,所以我的通知会被触发两次。
我发现的唯一线程没有答案: https ://github.com/laravel/framework/discussions/36191
无论如何“安静”删除的方法或类似的东西?
任何帮助表示赞赏!朱利安
解决方案
由于您同时使用这两个事件,因此唯一的方法是检查您的deleted
事件是否来自强制删除,然后停止进一步执行。
if ($model->isForceDeleting()) {
return null; // Stop the rest of the event
}
或者正如你提到的,反过来
if (! $model->isForceDeleting()) {
// Deleted event code here
}
推荐阅读
- git - 如何安全地推送之前的提交而不会丢失前面的提交
- c# - Linq Left Join 选择一个集合作为属性
- javascript - 导航到另一个模块(Angular)中的组件
- react-native - Expo - React Native:如何从 Google Fit API 读取用户数据
- arduino - 使用分段 lcd (raspberry pi / arduino) 重新调整计算器的用途
- java - java中<字符的Jaxb解析
- java - 用类似的方法创建java接口
- c# - 如何使用 EF Core 在 .NET Core 3.1(无 LINQ)中为 CRUD 操作创建自定义扩展方法?
- workflow - 工作流 - 获取由字段创建的事务
- python - 使用 Colorama 在 ubuntu 终端中显示 Ansii 文本颜色