同一个 model 中有多个字段 morphone 到另一外模型怎么处理?
问题如标题。
具体场景如下:
表movie中,有thumbnail和video两个morphone,都关联到Media这个类。
Movie类中:
public function thumbnail()
{
return $this->morphOne(Media::class, 'media');
}
public function video()
{
return $this->morphOne(Media::class, 'media');
}
Media类中
public function media()
{
return $this->morphTo();
}
此时,直接取的话,发现thumbnail和video都是取到了同一个media对象。各位有办法处理这种情况吗?
关于 LearnKu
搞定。
1、在morphMap中,新建关系
2、在Movie模型中,定义关系
3、自定义了一个新关系类,继承自Illuminate\Database\Eloquent\Relations\HasOneOrMany
其中构造函数如下:
其它方法和属性参考MorphOneOrMany和MorphOne。
4、新定义一个relation,例如叫multiMorphOne:
收工