0

我正在开发一个字幕机器人,其中:

  • 一部电影有多个字幕(取决于质量和语言)

  • 一个系列有多个季节,多个剧集有多个字幕(与电影相同)

这些是我的表(感谢DaveRandom):

在此处输入图像描述

问题是,据我所知,关联表用于多对多关系(如果我错了,请纠正我),我有点卡在这里,尤其是使用 Eloquent 的 belongsToMany 方法:

class Subtitle extends Model {
    public $guarded = [];
    public $timestamps = false;


    public function SeriesEpisodes()
    {
        return $this->belongsToMany('SeriesEpisode', null, null, 'series_episodes_subtitle');
    }


    public function Movie()
    {
        return $this->belongsToMany('Movie');
    }
}

但问题是,A Subtitle 属于ToOne Episode,而 Episode 可能有很多字幕。我想知道如何将关联表用于这种结构。还是我应该改变结构?

4

1 回答 1

0

因此,我试图通过多态关系来实现,删除了 2 个关联表,而是将 2 个字段添加到字幕表中:例如:parent_type,parent_id

然后我可以使用:

字幕:

class Subtitle extends Model {
    public $guarded = [];
    public $timestamps = false;

    public function Parent()
    {
        return $this->morphTo();
    }
}

系列剧集:

class SeriesEpisode extends Model {
    public $timestamps = false;
    public $guarded = [];
    public function Subtitles()
    {
        return $this->morphMany('Subtitle', 'Owner');
    }
}

电影:

class Movie extends Model {
    public $timestamps = false;
    public $guarded = [];
    public function Subtitles()
    {
    return $this->morphMany('Subtitle', 'Owner');
    }
}

希望它可以帮助别人。

于 2017-04-22T15:42:15.633 回答