Я не могу отобразить любые строки из атрибута, принадлежащего ToMany (у преподавателей есть предметы). Я использую тот же самый код в другой таблице, но по какой-то причине этот код дает ошибку, в которой говорится, что colum не существует, когда он это делает.Невозможно отобразить строки из fromToMany
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Subjects.subject_id' in 'on clause'
$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'
]);
Попробуйте переименовать таблицу 'tutors_subjects' как' subject_tutors' [Присоединить таблицы, используемые в BelongsToMany отношения между моделями, должны быть названы после того, как таблицы моделей, к которым они присоединятся, будут расположены в алфавитном порядке (articles_tags, а не tags_articles)] (https : //book.cakephp.org/3.0/en/intro/conventions.html) –
subject_tutors работает, так что это проблема. Невозможно было бы догадаться об этом, так как эта таблица была разбита по умолчанию. – jagguy
Пожалуйста, сделайте свой пост ответом, это настоящий сложный вопрос, который вы решили – jagguy