Yii2: дубликат строки в базе данных с ActiveRecord - PullRequest
0 голосов
/ 05 мая 2018

я разрабатываю модуль продукта, который добавляет информацию о продукте в таблицу продуктов, я добавляю кнопку вверху моей страницы, которая копирует текущий продукт, я хочу продублировать строку этого продукта (известную по идентификатору) в таблице продуктов, я использую 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, пожалуйста, помогите мне решить мою проблему, большое спасибо :)

1 Ответ

0 голосов
/ 05 мая 2018

Вам просто нужно скопировать атрибуты, и вот почему вы присваиваете $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());
}
...