Laravel 模型恢复事件

Zak*_*lal 3 php laravel eloquent laravel-5

所以我有 2 个模型用户和员工。他们彼此之间是一对一的关系。

User.php 'hasOne' Staff AND St​​aff.php 'belongsTo' 用户

当我软删除用户时,我也想软删除人员条目,我使用(完美运行)实现了这一点:

static::deleting(function ($user) {
    $user->staff()->delete(); 
});
Run Code Online (Sandbox Code Playgroud)

现在我想在恢复用户时恢复工作人员,因为我尝试过使用它(不工作):

static::restoring(function ($user) {
    $user->staff()->restore();
});
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。用户条目已删除,但人员条目仍保持软删除状态。

  • 有人可以帮助我了解我在这里做错了什么吗?

  • 另外,这是完成这项工作的最佳方式吗?或者有其他方法应该这样做吗?

PS:我使用的是 Laravel 5.5

Par*_*ras 5

它不起作用,因为$user->staff()不获取已删除的员工。这就是默认情况下关系的运作方式。

只需将其替换为:

static::restoring(function ($user) {
    $user->staff()->withTrashed()->restore();
});
Run Code Online (Sandbox Code Playgroud)