忽略多态关系的软删除不起作用

Ignore softdelete for Polymorphic Relations doens't work

我有一个日志 class 与创建、更新和删除的对象具有多态关系。

它可以创建和更新,但不能删除。

当我为删除日志调用它时 returns Model not found因为它是软删除的。

public function loggable()
{
    return $this->morphTo();
}

public function getColorAttribute()
{
    return $this->loggable->color;
}

所以我需要忽略这个调用的软删除,但我该怎么做呢? 文档仅显示一对多关系的情况。

另一种方法是编写自己的查询,但我想先问问是否可以这样做。

您可以使用 withTrashed() 加载 soft-deleted 个模型:

public function getColorAttribute()
{
  return $this->loggable()->withTrashed()->first()->color;
}