У меня было много отношений HAS_MANY, но … На этот раз он не хочет работать, и я не могу понять, почему.
У меня есть две модели:
Contest (id, name)
а также MpContest (id, contest_id).
В моей БД я создал внешний и первичный ключи.
В конкурсном классе:
public function relations() {
return array(
'mpContests' => array(self::HAS_MANY, 'MpContest', 'contest_id'),
);
}
В классе MpContest:
public function relations() {
return array(
'contest' => array(self::BELONGS_TO, 'Contest', 'contest_id'),
'contestType' => array(self::BELONGS_TO, 'ContestType', 'contest_type'),
);
}
Когда я пытаюсь получить относительный MpContest от конкурса, я получаю сообщение об ошибке.
Я пытаюсь сделать это:
$mpContests = $this->mpContests;
И я получаю это:
CDbCommand n'a pas pu exécuter la commande SQL : SQLSTATE[42S22]: Column not found: 1054 Unknown column 'mpContests.contest_id' in 'where clause'. The SQL statement executed was: SELECT `mpContests`.`id` AS `t1_c0`, `mpContests`.`name` AS `t1_c1`, `mpContests`.`date_start` AS `t1_c2`, `mpContests`.`date_end` AS `t1_c3`, `mpContests`.`date_start_post` AS `t1_c4`, `mpContests`.`date_end_post` AS `t1_c5` FROM `contest` `mpContests` WHERE (`mpContests`.`contest_id`=:ypl0). Bound with :ypl0='1'
Я также пытался добавить ‘index’ => ‘id’ в отношении, но ничего не изменилось.
В чем дело ?
О, мой бог ! Я узнал, почему он не хотел работать ..
Я неправильно написал имя таблицы в классе MpContest ..
Это моя ошибка. Извините за мою легкомысленность, может быть, у кого-то еще будет такая же проблема.
Других решений пока нет …