我有一个似乎重复的问题,但事实并非如此:
我用一个小例子来解释。
我有两张桌子:学生&的课程
每个学生可以参加N 课程,每个课程可以由N 学生学习。
我希望学生访问课程,并且还可以通过课程访问学生。< / p>
EX:
1-给我学生的课程列表,其中id = 1。
2-向我提供学生的列表,他们使用id = 2000的课程。
如果我在 StudentsTable中使用 belongsToMany 类就足够了,或者我还应该在< hasMany 或 belongsToMany 中定义 em> CoursesTable class。
告诉我该怎么做。
提前感谢。
PS:我使用CakePHP 3.x
答案 0 :(得分:1)
正如Agam Banga在link中所说,我们应该使用:
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');
}
}