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