Я создаю сайт MMA (смешанные боевые искусства) с CakePHP. В моей базе данных есть таблица fights
, в которой три самых простых столбца: id
, fighter_a
и fighter_b
.
У меня возникают проблемы с определением отношений, которые моя модель Fight
будет иметь с моим модулем Fighter
. Правильно ли я думаю, что fighter_a
и fighter_b
будут двумя hasOne
отношениями?
Я пытался это сделать со следующим в моей Fight
модели:
<?php
class Fight extends AppModel {
public $name = 'Fight';
public $hasOne = array(
'FighterA' => array(
'className' => 'Fighter',
'foreignKey' => 'fighter_a'
),
'FighterB' => array(
'className' => 'Fighter',
'foreignKey' => 'fighter_b'
)
);
}
А потом это в моей Fighter
модели:
<?php
class Fighter extends AppModel {
public $name = 'Fighter';
public $hasMany = array(
'Fight'
);
}
Но это вызвало ошибку в моем приложении CakePHP при вызове $this->Fight->findById($id)
(где $id
был идентификатором бойца):
Ошибка: SQLSTATE [42S22]: столбец не найден: 1054 Неизвестный столбец 'Fight.fighter_id' в 'списке полей'
Как я могу связать свои модели, чтобы я мог назвать все бои, в которых участвовал боец?