Yii2:使用ActiveRecord在数据库中重复行

时间:2018-05-05 11:17:09

标签: php activerecord yii yii2

我开发了将产品信息添加到产品表中的产品模块,我在页面顶部添加了复制当前产品的按钮,我希望在产品表中复制该产品的行(以id表示),我用户activerecord重复数据芽id始终设置为null,我的脚本不能复制数据,我的脚本是:

$product_original = Product::findOne($id);
$product_copy = new Product();
$product_copy->attributes = $product_original->attributes
$product_copy->isNewRecord = true;
$product_copy->id = null;
$product_copy->save();

保存产品$ product-> save();总是回复假,请帮我解决我的问题,谢谢很多:)

1 个答案:

答案 0 :(得分:3)

您只需复制属性即可分配$product_copy->isNewrecord$product_copy->id=NULL;

记录未保存的唯一原因是保存记录前的验证错误,如果未保存则可以检查错误

只需使用

$product_original = Product::findOne($id);
$product_copy = new Product();
$product_copy->attributes = $product_original->attributes;
if(!$product_copy->save()){
  //either print errors or redirect
  print_r($product_copy->getErrors());
}