首页 > 解决方案 > 在多态表的类型列中回填什么?

问题描述

我正在改变我的File-model 从one to many成为一个one to many polymorphic关系。以前只有我的User-model 可以有一个文件,但现在我的模型Guest也可以有一个文件。

因此,在我在文件表中有一个名为的列之前,我已经user_id按照此处的模式重命名了该列:https ://laravel.com/docs/7.x/eloquent-relationships#many-to-many-polymorphic-relations

所以它现在被命名为fileable_id.

除了重命名之外,我还添加了一个名为fileable_type. 我现在想回填该列,以便User-model 上的所有现有点。我应该在那个专栏里写什么?

我尝试过App\UserUser没有成功。

标签: laravel

解决方案


App\User如果这是您的用户模型命名空间的方式,那么应该是正确的。多态关系使用getMorphClass()Eloquent 模型上的方法。您可以通过以下方式验证这一点:

$u = new User();
dd($u->getMorphClass());

如果您尚未为 User 模型创建自定义多态类型getMorphClass(),则应等效于User::class.


推荐阅读