Laravel多态关系

时间:2015-03-12 15:34:06

标签: laravel-4 polymorphic-associations

我有不同的数据库表,下面是数据库图。 我试图建立多对多的多态关系,但没有运气,请指导我,我需要做什么,意味着我需要添加哪种类型的关系/代码?

enter image description here

1 个答案:

答案 0 :(得分:1)

课程模型

class Course extends Eloquent {

    public function quizzes()
    {
        return $this->morphToMany('Quiz', 'quizzable');
    }

}

章节模型

class Chapter extends Eloquent {

    public function quizzes()
    {
        return $this->morphToMany('Quiz', 'quizzable');
    }

}

课程模型

class Lesson extends Eloquent {

    public function quizzes()
    {
        return $this->morphToMany('Quiz', 'quizzable');
    }

}

测验模型

class Quiz extends Eloquent {

    public function courses()
    {
        return $this->morphedByMany('Course', 'quizzable');
    }

    public function chapters()
    {
        return $this->morphedByMany('Chapter', 'quizzable');
    }

    public function lessons()
    {
        return $this->morphedByMany('Lesson', 'quizzable');
    }

}

来源:http://laravel.com/docs/4.2/eloquent#many-to-many-polymorphic-relations

我会将quizzes_assigned表更改为:

Table name: quizzables
    quiz_id - integer
    quizzable_id - integer
    quizzable_type - string