Laravel 多态关系

Laravel polymorphic relationship

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

课程模型

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 更改为:

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