Laravel Nova没有区分同一模型之间不同类型的多态关系
我有一个Laravel Nova没有区分同一模型之间不同类型的多态关系,laravel,laravel-nova,polymorphic-relationship,Laravel,Laravel Nova,Polymorphic Relationship,我有一个选项卡模型,它与许多其他模型(包括我的用户模型)具有一对多多态关系。我将此关系称为customizers(因为它们自定义选项卡的内容),并将它们存储在名为tab\u customizers的表中,其中customizer\u id和customizer\u type作为关系相关列。因为同一个模型的关系也可以有不同的类型,所以我加入了另一个名为relationship\u type的专栏 例如,在我的选项卡和用户模型之间,有两种不同的关系: 用户可以将选项卡与其作者关联(如果相关用户撰写
选项卡
模型,它与许多其他模型(包括我的用户
模型)具有一对多多态关系。我将此关系称为customizers
(因为它们自定义选项卡的内容),并将它们存储在名为tab\u customizers
的表中,其中customizer\u id
和customizer\u type
作为关系相关列。因为同一个模型的关系也可以有不同的类型,所以我加入了另一个名为relationship\u type
的专栏
例如,在我的选项卡
和用户
模型之间,有两种不同的关系:
可以将用户
与其选项卡
关联(如果相关用户撰写文章,则会在选项卡中显示)作者
可以与用户
相关,因为它的焦点是选项卡
(如果在帖子中提及相关用户,它将显示在选项卡中)提及
选项卡
模型中定义的关系:
公共函数作者()
{
return$this->morphedByMany(User::class'customizer','tab_customizers')->where('relation_type','author');
}
公共职能提及()
{
return$this->morphedByMany(用户::class,'customizer','tab_customizers')->where('relation_type','ntify');
}
以下是我的选项卡
资源中的Nova字段:
MorphedByMany::make('authors',User::class),
MorphedByMany::make('提及',用户::类),
这是我的问题:当我选择一个用户
模型将其附加到提及
(实际上是附加到定制者
,以提及
作为其关系类型
),它将以作者
作为关系类型
附加。我如何让Nova区分这两种类型
此外,我不能将选项卡
和用户
与作者
作为关系类型
之间的关系,以及另一个与同时提及
作为关系类型
的关系。当我尝试(使用tinker)附加其中一种类型的关系,而另一种类型的关系已经存在时,它将更新现有关系,而不会附加新关系