我有可以属于帖子和评论的照片,所以我创建了photos table
,其中包含这些列
- photable_id
- photable_type
- user_id
- file_name
问题是:如果我有一张属于某个帖子的照片,而同一张照片属于另一个帖子或评论怎么办?
答案 0 :(得分:-1)
您可以创建表photos
,
另一个具有这些列的表photoables
:
photo_id
photoable_id
photoable_type
因此photo_id
列与id
表中的photos
相关。
然后在您的Photo model
中:
// Get rid of this function
public function morphTo();
// Then add these two methods
public function posts()
{
return $this->morphedByMany(Post::class);
}
public function comments()
{
return $this->morphedByMany(Comment::class);
}
最后,您的Post Model
,Comment Model
应该使用photoable
方法
public function photoable()
{
return $this->morphToMany(Photo::class, 'photable'); // instead of morphMany()
}