主模型应该如下所示:
protected $fillable = ['productable_id', 'productable_type', 'manufacturer_id', 'model', 'price', 'description'];
public function productable(): MorphTo
{
return $this->morphTo();
}
然后,让我们假设在GPU模型中的可填充项中添加了与主表不同的GPU属性
protected $fillable = ['memory'];
您还需要在GPU控制器中执行以下操作:
public function component(): MorphOne
{
return $this->morphOne(Component::class, 'productable');
}
对于组件迁移,您应该设置像Productable_type和Productable_id这样的属性.关键是使用变形,就像其他一些 comments 所说的那样.
然后,在GPU控制器中,您的索引方法应该以如下形式开始:
$gpus = GPU::with('component')->get();