SugarCRM Как сохранить несколько записей, используя логику before_save
Когда я пытаюсь сохранить несколько записей следующим образом:
public function generateName($bean, $event, $arguments) {
$record_id = $bean->id;
$module="PNGM_AI_Projects";
$mybean = BeanFactory::retrieveBean($module, $record_id);
if (isset($arguments['isUpdate']) && $arguments['isUpdate'] == false) {
for($i=1;$i<=3;$i++){
$mybean->id=create_guid();
$mybean->new_with_id = true;
$mybean->name="AI->".$i;
$mybean->fetched_row = null;
$mybean->unique_id_c = uniqid();
$mybean->ignore_update_c = true;
$mybean->processed = true;
$mybean->assigned_user_id = $bean->assigned_user_id;
$mybean->save();
}
}
return true;
}
я получаю эту ошибку
Исключение произошло при выполнении команды «INSERT INTO pngm_ai_projects_cstm (id_c,assign_c,brand_c,company_c) VALUES(?, ?, ?, ?)» с параметрами ["5d790e7c-3c43-11eb-96f5-0242ac120008", null, "Basic", «Отложенный заказ»]: дублирующаяся запись «5d790e7c-3c43-11eb-96f5-0242ac120008» для ключа «PRIMARY».
1 ответ
public function generateName($bean, $event, $arguments) {
$record_id = $bean->id;
$module="PNGM_AI_Projects";
if (isset($arguments['isUpdate']) && $arguments['isUpdate'] == false) {
for($i=1;$i<=3;$i++){
// create new bean here rather than fetching old beans always.
$mybean = BeanFactory::getBean($module);
$mybean->id=create_guid();
$mybean->new_with_id = true;
$mybean->name="AI->".$i;
$mybean->fetched_row = null;
$mybean->unique_id_c = uniqid();
$mybean->ignore_update_c = true;
$mybean->processed = true;
$mybean->assigned_user_id = $bean->assigned_user_id;
$mybean->save();
}
}
return true;
}