我遇到了一些使用Laravel's Eloquent无法解决的问题。
我有两个或更多(6个) - 完全对象: - ObjectA - ObjectB - ObjectC 这些对象中的每一个都具有一个自己的Variant,但每个Object的变体结构都是相同的,因此可以是常见的。 Variant有一个字段variant_type,它指示Object所属的类型。如何在这个领域建立关系?
class Variant extends Model
{
protected $fillable = ['variant_id','name','variant_type','variant_img'];
public function ObjectsA()
{
return $this->belongsToMany(ObjectA::class);
}
public function ObjectsB()
{
return $this->belongsToMany(ObjectB::class);
}
.
.
.
}
在Objects模型中,我对Variant :: class有一个关系hasOne。我正在考虑为每个Object示例创建数据透视表:objectA_variant,objectB_variant等......但它不是重点,因为Object有一个变体。 另外,我正在考虑为外键创建可为空的列(6列),但我不确定它是一个好方法吗?
请提前建议和感谢。
答案 0 :(得分:0)
您应该只有Variant和Object类。然后关系:
对象 - > hasMany Variant
Variant-> hasOne对象
请记住在表中使用正确的列名,例如variant_id而不是variant_type。
否则,您需要手动将引用键添加到关系定义