尝试设置一个关于如何使用带有额外数据的连接表的示例,我有以下设置:
- 表
students
:id
,,name
[...] - 表
courses
:id
,,title
[...] - 连接表
courses_students
:id
,course_id
,student_id
,grade
,hours_attended
两个基表:
class StudentsTable extends Table {
public function initialize(array $config) {
$this->belongsToMany('Courses', [
'alias' => 'Courses',
'foreignKey' => 'student_id',
'targetForeignKey' => 'course_id',
'joinTable' => 'courses_students',
'through' => 'CoursesStudents',
]);
}
class CoursesTable extends Table {
public function initialize(array $config) {
$this->belongsToMany('Students', [
'alias' => 'Students',
'foreignKey' => 'course_id',
'targetForeignKey' => 'student_id',
'joinTable' => 'courses_students',
'through' => 'CoursesStudents',
]);
}
和关联表:
class CoursesStudentsTable extends Table {
public function initialize(array $config) {
$this->belongsTo('Courses', [
'alias' => 'Courses',
'foreignKey' => 'course_id'
]);
$this->belongsTo('Students', [
'alias' => 'Students',
'foreignKey' => 'student_id'
]);
}
在表中有一些课程可用时,我尝试添加和编辑学生记录。环境
[courses] => [_ids]
在学生记录中创建学生表和关联表中的记录。
应该如何形成post数据数组,以便在保存学生记录时能够将grade
和hours_attended
字段存储在关联表中?