【问题标题】:Yii2: duplicate row in database with ActiveRecordYii2:使用 ActiveRecord 在数据库中重复行
【发布时间】:2018-05-05 11:17:09
【问题描述】:

我开发了将产品信息添加到产品表中的产品模块,我在页面顶部添加了复制当前产品的按钮,我想在产品表中复制该产品的行(由 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_copy->getErrors(); 告诉你什么?

标签: php activerecord yii yii2


【解决方案1】:

您只需要复制属性,这就是您分配$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());
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多