无法显示belongsToMany中的行

时间:2017-01-20 12:46:52

标签: cakephp cakephp-3.0

我无法显示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'
]);

1 个答案:

答案 0 :(得分:3)

尝试将您的表格tutors_subjects重命名为subjects_tutors

  

连接表,用于模型之间的BelongsToMany关系,   应该以他们将加入的模型表命名,安排在   字母顺序(articles_tags而不是tags_articles)

更多信息Model and Database Conventions