如果第一个表的主键有,则如何添加这两个表的关系 第二个表中的不同列名称将被引用
e.g
Person
personid(pk),fname,lname,age
Job
jobid(pk),humanid(fk),description
在上面的例子中,作业表中的humanid列的值是第一个表中的personid。 那么如何在这两个表中创建关系?
我试过
//PERSON MODEL
public function relations() {
return array(
'job' => array(self::HAS_ONE,'Job','jobid')
);
}
//JOB MODEL
public function relations(){
return array(
'person' => array(self::BELONGS_TO,'Person','personid')
);
}
这不起作用...任何解决方案,而不必重命名数据库中的db列?
答案 0 :(得分:1)
Person模型中的关系应如下所示:
//PERSON MODEL
public function relations() {
return array(
'job' => array(self::HAS_ONE,'Job','humanid')
);
}
因为Job表与humanid键的Person表相关(personid = humanid)。
如果Person和Job表有一对多的关系,你应该使用self :: HAS_MANY而不是self :: HAS_ONE('job'=> array(self :: HAS_MANY,'Job',' humanid'))。
正如яша所说,Job模型中的关系应如下所示:
//JOB MODEL
public function relations(){
return array(
'person' => array(self::BELONGS_TO,'Person','humanid')
);
}
答案 1 :(得分:1)
试试这个,
// JOB MODEL
public function relations(){
return array(
'person' => array(self::HAS_ONE,'Person',array('personid'=>'humanid')
);
}