我在插入具有 parent 的新记录时遇到问题。
<?php
/**
* This is the model class for table "tbl_a".
* @property integer $id
....
*/
class A extends CACtiveRecord{
}
?>
<?php
/**
* This is the model class for table "tbl_b".
* @property integer $id
....
* The followings are the available model relations:
* @property A $a
*/
class B extends CACtiveRecord{
//codes...
/**
* @return array relational rules.
*/
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'a' => array(self::BELONGS_TO , 'A', 'id'),
);
}
}
?>
这是我的模型类的结构。这里 tbl_b 的 'id' 设置为主键,也是引用 tbl_a 的外键。tbl_a 的 'id' 是它的主键。
我的问题是,当我尝试保存 B 的模型对象($b->save())时,在设置了除“id”之外的所有属性之后(但对象 [$b] 的属性“a”设置为模型'A'的活动记录说具有主键10),插入记录时抛出异常,因为没有设置'id'。但是当我在设置模型对象的 'id' 后尝试相同时,它正确插入。为什么即使设置了相关属性,我们也需要设置子模型的外键属性?有什么解决方案。以便从相关模型 obj 中自动获取外键引用 id?
提前致谢。