Php 通过多态模型还是无中介的变形?
考虑以下雄辩的文档多态性示例作为起点: () 在这个变化中,有点相反的方向。用户有许多媒体。媒体是多态的,可以是任何模型 目标是能够查询Php 通过多态模型还是无中介的变形?,php,laravel,eloquent,polymorphism,polymorphic-associations,Php,Laravel,Eloquent,Polymorphism,Polymorphic Associations,考虑以下雄辩的文档多态性示例作为起点: () 在这个变化中,有点相反的方向。用户有许多媒体。媒体是多态的,可以是任何模型 目标是能够查询User->media关系并返回相应的post和video模型 问题:目前我获得post或video模型的唯一方法是查询mediable关系:User->media->mediable。为了映射多态模型,我们需要记录媒体id和媒体类型的medias表 HasManyThrough关系似乎是合乎逻辑的解决方案,但似乎受到必须知道所需模型类型的限制 有没有办法达到我
User->media
关系并返回相应的post
和video
模型
问题:目前我获得post
或video
模型的唯一方法是查询mediable
关系:User->media->mediable
。为了映射多态模型,我们需要记录媒体id和媒体类型的medias表
HasManyThrough关系似乎是合乎逻辑的解决方案,但似乎受到必须知道所需模型类型的限制
有没有办法达到我想要的结果
DB:
型号:
class User
public function media()
{
return $this->hasMany('App\Media');
}
class Media
public function mediable()
{
return $this->morphTo();
}
class Post
public function Media()
{
return $this->morphMany('App\Media', 'mediable');
}
class Videos
public function Media()
{
return $this->morphMany('App\Media', 'mediable');
}
class User
public function media()
{
return $this->hasMany('App\Media');
}
class Media
public function mediable()
{
return $this->morphTo();
}
class Post
public function Media()
{
return $this->morphMany('App\Media', 'mediable');
}
class Videos
public function Media()
{
return $this->morphMany('App\Media', 'mediable');
}