我有2个Yii AR型号。 ParentRecord和ChildRecord模型。
父母HAS_ONE孩子。
创建新父级时,如何确保始终创建子级。父母总是需要孩子。
在父AR类中这么简单吗?
public function onAfterConstruct()
{
if ($this->isNewRecord){
$this->master = new ChildRecord;
}
}
我不想在控制器中同时创建它们并将它们保存在那里,我只想创建和保存父项,并始终创建和保存子项。
我的relations()数组运行正常。
答案 0 :(得分:2)
只需在成功保存新父级
后创建子记录public function afterSave()
{
if($this->isNewRecord)
{
$child = new ChildRecord;
$child->parent_id = $this->id;
$child->save();
}
return parent::afterSave();
}
更新你可以使用关系
public function afterSave()
{
if($this->isNewRecord)
{
$this->childRelation = new ChildRecord;
$this->childRelation->parent_id = $this->id;
$this->childRelation->save();
}
return parent::afterSave();
}