Cakephp 无法显示来自以下位置的行:
我无法显示任何来自归属关系的行(导师有科目)。我在另一个表上使用了完全相同的代码,但由于某种原因,该代码给出了一个错误,即当列存在时,该列不存在 错误:SQLSTATE[42S22]:找不到列:“on子句”中的1054未知列“Subjects.subject\u id” 导师模式Cakephp 无法显示来自以下位置的行:,cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,我无法显示任何来自归属关系的行(导师有科目)。我在另一个表上使用了完全相同的代码,但由于某种原因,该代码给出了一个错误,即当列存在时,该列不存在 错误:SQLSTATE[42S22]:找不到列:“on子句”中的1054未知列“Subjects.subject\u id” 导师模式 $this->belongsToMany('Subjects', [ 'foreignKey' => 'tutor_id', 'targetForeignKey' => 'subject_
$this->belongsToMany('Subjects', [
'foreignKey' => 'tutor_id',
'targetForeignKey' => 'subject_id',
'joinTable' => 'tutors_subjects'
]);
尝试将您的表重命名为
subjects\u tutors
assubjects\u tutors
联接表,用于模型之间的隶属关系,
应以它们将加入的模型表命名,并按
字母顺序(文章\u标签而不是标签\u文章)
更多信息请尝试将您的表重命名为
tutors\u subjects
,因为subjects\u tutors
subjects\u tutors有效,这就是问题所在。我不可能猜到这一点,因为这张表是默认装箱的。请在你的帖子中给出答案,这是一个非常棘手的问题,你解决了,这不应该是问题所在。CakePHP有一些约定,但它们在很大程度上不是强制的,即指定非常规的表名应该绝对没有问题。我宁愿怀疑在修改了相关表的模式后,模型缓存还没有被清除。ndm-我所做的只是重命名了表,代码现在可以工作了。这似乎是杰克找到解决方案的cakephp3的问题。我也没有指定这个表名,因为它是默认创建的。
$this->belongsToMany('Subjects', [
'foreignKey' => 'tutor_id',
'targetForeignKey' => 'subject_id',
'joinTable' => 'tutors_subjects'
]);