继承的多态关系

时间:2018-07-30 15:02:14

标签: laravel-5.6 relationships

在我的数据库中,我有一个继承情况。
有一个名为产品的表,其中包含所有类别(例如衣服鞋类面料包)中的通用属性,每种产品应仅为上述类别之一。
我已经使用方法$table->morphs('taggable');创建了适当的列。
并实现了雄辩的多态关系,如下所示:

    class Product extends Model
{
    public function taggable()
     {
         return $this->morphTo();
     }

}


class Footwear extends Model
{
    public function product()
    {
        return $this->morphMany('Product', 'taggable');
    }
}


在其他两个类别中也是如此。 但是当我使用修补匠来验证这种关系时,它似乎从一侧开始工作!

>>> App\Model\Product::find(65)->taggable
[!] Aliasing 'FabricPack' to 'App\Model\FabricPack' for this Tinker session.
=> App\Model\FabricPack {#2928
     id: 5,
     length: 0.7,
     created_at: "2018-07-30 12:19:51",
     updated_at: "2018-07-30 12:19:51",
   }


我认为App\Model\FabricPack::find(5)->tag应该返回适​​当的产品,但返回null。

>>> App\Model\FabricPack::find(5)
=> App\Model\FabricPack {#2929
     id: 5,
     length: 0.7,
     created_at: "2018-07-30 12:19:51",
     updated_at: "2018-07-30 12:19:51",
   }
>>> App\Model\FabricPack::find(5)->tag
=> null


那么,这个问题有什么解决办法吗?

1 个答案:

答案 0 :(得分:0)

taggable_type 值应与此App\Model\{subclass}相似。