我做了很多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'关系但是......没有任何改变。
出了什么问题?
答案 0 :(得分:0)
哦!我发现了为什么它不想工作..
我拼错了MpContest类中的表名..
这是我的错。对不起我的轻率,也许其他人会遇到同样的问题。