【问题标题】:Laravel 5.4: Re-assign a soft-deleted recordLaravel 5.4:重新分配软删除的记录
【发布时间】:2017-12-16 03:57:27
【问题描述】:

在 Laravel 5.4 中使用软删除。当我尝试创建已创建但软删除的记录时,我收到消息“xxx 已被占用”。什么是能够处理事件的最佳方式 用户尝试保存已被软删除的记录?

我一直试图在控制器的 store 方法中捕获此事件,但如果记录已存在,则不会调用 store 方法 - AFAIK。

在我的用例中,我的收音机一次只能与一个用户关联,但可以取消分配,例如软删除,然后在将来重新分配给另一个用户。

【问题讨论】:

  • 检查记录是否存在,如果没有=存储,如果是=检查是否软删除,如果没有=记录已分配,如果是=更新分配(不存储)(删除软删除)

标签: laravel soft-delete


【解决方案1】:

您可以restore()恢复软删除的模型:

App\User::withTrashed()->where('id', $user_id)->restore();

Restoring Soft Deleted Models

【讨论】:

  • 感谢迈克尔的回复。你知道为什么当表中已经存在记录但被软删除/丢弃时,我没有看到“存储”方法被调用吗?
  • 您在保存模型之前是否进行了验证?
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 2017-09-30
  • 2010-09-09
  • 2018-02-12
  • 1970-01-01
  • 2017-11-10
  • 1970-01-01
  • 2012-07-08
相关资源
最近更新 更多