我无法显示belongsToMany关系中的任何行(导师有主题)。我在另一个表上使用完全相同的代码,但由于某种原因,这段代码给出了一个错误,表示当它确实不存在时。
错误:SQLSTATE [42S22]:找不到列:1054未知列' Subjects.subject_id'在' on条款'
$tid = 12;
$sub = $this->Subjects->find('list')->hydrate(true);
$sub->matching('Tutors', function ($q) use ($tid) {
return $q->where(['Tutors.id' =>$tid]);
});
导师模特
$this->belongsToMany('Subjects', [
'foreignKey' => 'tutor_id',
'targetForeignKey' => 'subject_id',
'joinTable' => 'tutors_subjects'
]);
答案 0 :(得分:3)
尝试将您的表格tutors_subjects
重命名为subjects_tutors
连接表,用于模型之间的BelongsToMany关系, 应该以他们将加入的模型表命名,安排在 字母顺序(articles_tags而不是tags_articles)