CakePHP 3.x中的多对多关联

时间:2017-04-24 02:52:31

标签: cakephp many-to-many model-associations

我有一个似乎重复的问题,但事实并非如此:

我用一个小例子来解释。

我有两张桌子:学生&的课程

每个学生可以参加N 课程,每个课程可以由N 学生学习。

我希望学生访问课程,并且还可以通过课程访问学生。< / p>

EX:

1-给我学生课程列表,其中id = 1。

2-向我提供学生的列表,他们使用id = 2000的课程

如果我在 StudentsTable中使用 belongsToMany 类就足够了,或者我还应该在< hasMany belongsToMany 中定义 em> CoursesTable class。

告诉我该怎么做。

提前感谢。

PS:我使用CakePHP 3.x

1 个答案:

答案 0 :(得分:1)

正如Agam Bangalink中所说,我们应该使用:

class StudentsTable extends Table
{
    public function initialize(array $config)
    {
        $this->belongsToMany('Courses', [
            'through' => 'CourseMemberships',
        ]);
    }
}

class CoursesTable extends Table
{
    public function initialize(array $config)
    {
        $this->belongsToMany('Students', [
            'through' => 'CourseMemberships',
        ]);
    }
}

class CoursesMembershipsTable extends Table
{
    public function initialize(array $config)
    {
        $this->belongsTo('Students');
        $this->belongsTo('Courses');
    }
}