Я работаю над проектом, который использует Docrtrine и Symfony 2.7. У меня есть объект Document, который я хочу клонировать, и мне, конечно же, нужно убедиться, что у меня нет дублированного первичного ключа. Вот что я пытался сделать до сих пор:
/**
* Document
*
* @ORM\Table(name="documents")
*/
class Document {
public function ___clone(){
$newObj = clone $this;
$newObj->id = null;
return $newObj;
}
...
}
Однако, похоже, это мало что делает, так как, когда я звоню clone myDocument
и затем пытаюсь настаивать, я все равно получаю это сообщение:
SQLSTATE [23000]: нарушение ограничения целостности: 1062 Повторяющаяся запись
«1» для ключа «UNIQ_A2B07288ECC6147F»
Как мне вернуть первичный ключ моего объекта в нулевое или автоинкрементное состояние?
=====
Upate: Использование
public function __clone(){
$this->id = null;
}
по-прежнему приводит к той же ошибке. Полный текст ошибки:
Исключительная ситуация при выполнении документов INSERT INTO
(UseFrom, UseTo, статус, рабочий поток_идентификатор, создан_дата,
измененная дата, language_id, translationRoot_id, ownerGroup_id,
idUser_id, production_id, media_id, создал_пользователя,
updated_user) ЗНАЧЕНИЯ (?,?,?,?,?,?,?,?,?,?,?,?,?,?) 'с
params ["2018-06-28 09:54:37", "2018-06-28 09:54:37", 100,
"4cc723c2a5730c1b9c2ed6428ae57205", "2018-06-28 09:54:37", "2018-06-28
09:54:37 ", ноль, ноль, ноль, ноль, 1, ноль, 1, 1]:
SQLSTATE [23000]: нарушение ограничения целостности: 1062 Повторяющаяся запись
«1» для ключа «UNIQ_A2B07288ECC6147F»