我知道这是一个老问题,但我看到 Venturecraft/Revisionable 开发人员没有给出这个问题的答案。
当包尝试使用 in 属性的值实例化一个新模型时会发生错误$this->revisionable_type
,Venturecraft\Revisionable\Revision
因为使用 $morphClass 数组的键而不是模型的真实命名空间时该类不存在。
我发现当我用这样的 Laravel 访问器覆盖这个属性的值时,问题就解决了:
use Illuminate\Database\Eloquent\Relations\Relation;
public function getRevisionableTypeAttribute($value)
{
$morphedModel = Relation::getMorphedModel($value);
return !empty($morphedModel) ? $morphedModel : abort(400, "The namespace {$value} hasn't been added to the Relation::morphMap() method.");
}
现在,我不知道如何在不编辑供应商文件夹中的访问器的情况下将此访问器添加到修订模型。
如果您可以尝试并分享您获得的信息,将会很有帮助。