Php Yii2:数据库中的行与ActiveRecord重复

Php Yii2:数据库中的行与ActiveRecord重复,php,activerecord,yii,yii2,Php,Activerecord,Yii,Yii2,我开发了将产品信息添加到产品表的产品模块,我在页面顶部添加了复制当前产品的按钮,我想复制产品表中该产品的行(通过id知道),我使用activerecord复制数据,id始终设置为null,我的脚本无法复制数据,我的脚本是: $product_original = Product::findOne($id); $product_copy = new Product(); $product_copy->attributes = $product_original->attributes

我开发了将产品信息添加到产品表的产品模块,我在页面顶部添加了复制当前产品的按钮,我想复制产品表中该产品的行(通过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()后;始终返回false,请帮助我解决我的问题,非常感谢:)

您只需要复制属性,这就是为什么要分配
$product\u copy->isNewrecord
$product\u 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());
}

您只需要复制属性,这就是为什么要分配
$product\u copy->isNewrecord
$product\u 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());
}

$product\u copy->getErrors()是什么意思向您展示?什么是
$product\u copy->getErrors()给你看?