使用yii框架在保存后将数据从一个表复制到另一个表

使用yii框架在保存后将数据从一个表复制到另一个表,yii,Yii,我有这个代码片段。我想把数据从一个表复制到另一个表。请看我的代码,这不起作用 谢谢 protected function afterSave() //Copy data from Client to packageassignment *** // assuming your you're in the Client model //and Client has id,package_id,p_start_date { $packageassignment= n

我有这个代码片段。我想把数据从一个表复制到另一个表。请看我的代码,这不起作用

谢谢

protected function afterSave()
 //Copy data from Client to packageassignment ***
  // assuming     your you're in the Client model 
    //and Client has id,package_id,p_start_date
 {
    $packageassignment= new Packageassignment();
    $packageassignment->user_id=$this->id;
    $packageassignment->package_id=$this->package_id;
    $packageassignment->package_start_date=$this->p_start_date;
    $packageassignment->save();
    return parent::afterSave();
}

你的代码看起来不错。问题很可能就在眼前

$packageassignment->save();
换成

if(!$packageassignment->save()){
  echo 'packageassignment save failed!';
  //other debugging code
}

然后看看是否有错误。或者替换为您首选的错误日志记录技术。

Renzem,我按照您的描述更改了代码,但没有保存任何数据,也没有为失败记录回显消息。plz ADVICE..仅将数据保存在第一个表中,而不保存在第二个表中。thanks@MuhammadHamdani此时,您只需要使用标准调试技术来缩小问题范围。添加一个echo语句以获得成功。确保保存后没有重定向,否则
echo
语句的输出将丢失。您也可以尝试只保存
Packageassignment
模型本身,输入一些任意值,看看它是否有效。这就是您要寻找的全部内容,请确保save能够独立工作。检查该模型的rules()方法并确保它们是正确的。尝试使用
$packageassignment->save(false)
忽略任何验证。