通过关系表连接的Laravel模型

时间:2019-09-27 10:19:15

标签: laravel eloquent model

我正在为Laravel及其模型互连而苦苦挣扎。 我有以下内容:

4个表格(ChapterHeadlineQuestionCHQRelation

我已经为所有模型创建了模型,但是现在我想知道如何连接它们。最后,我希望能够针对给定的章节/标题组合获得所有分配的问题。
我的第一次尝试是建立一个从hasManyChapter的{​​{1}}连接,以接收具有同一章的所有关系。然后,我需要一个从CHQRelationhasMany的{​​{1}}关系来获取所有标题,然后需要另一个与CHQRelation的{​​{1}}关系来获取这些标题。我想这是一种复杂的方法,但是我想不出一种简单的方法,因此需要朝正确的方向稍加推压

2 个答案:

答案 0 :(得分:0)

我认为您应该去https://laravel.com/docs/5.8/eloquent-relationships以获得有关与模型的关系的进一步文档

答案 1 :(得分:0)

表格

- chapters 
id

- c_h_q_relations
id
chapter_id

- headlines
id
c_h_q_relation_id

- questions
id
c_h_q_relation_id

模型关系:

class Chapter extends Model
{
    public function cHQRelations()
    {
        return $this->hasMany('App\CHQRelation');
    }
}

class CHQRelation extends Model
{
    public function headlines()
    {
        return $this->hasMany('App\Headline');
    }

    public function questions()
    {
        return $this->hasMany('App\Question');
    }

    public function chapter()
    {
        return $this->belongsTo('App\Chapter');
    }
}

class Headline extends Model
{
    public function cHQRelation()
    {
        return $this->belongsTo('App\CHQRelation');
    }
}

class Question extends Model
{
    public function cHQRelation()
    {
        return $this->belongsTo('App\CHQRelation');
    }
}

另请参见:

Laravel best practices

Eloquent hasMany relationship

Eloquent belongsTo relationship