Новый объект не клонируется
$clonedObj = clone $repatNewsObj;
$this->extendednewsRepository->add($clonedObj);
$this->persistenceManager->persistAll();
Новый объект не клонируется
$clonedObj = clone $repatNewsObj;
$this->extendednewsRepository->add($clonedObj);
$this->persistenceManager->persistAll();
Это не то, как вы копируете объект extbase с помощью TYPO3. К сожалению, простое клонирование с помощью PHP не приведет к сбросу объекта с точки зрения extbase. Метод add
репозитория по умолчанию просто проигнорирует «новый» объект, если у него уже есть uid в базе данных. Следовательно, ваш постоянный вызов фактически ничего не делает.
Вы можете создать новый объект самостоятельно, установив каждое свойство вручную на основе исходного объекта, или вы можете использовать обработчик данных для копирования вашего объекта. Существует сообщение в блоге с описанием этого (в немецкий), а также старый вопрос SO, в котором обсуждается одна и та же проблема.
Если вы хотите клонировать объект из одного из ваших собственных расширений, лучше всего перезаписать метод __clone
и сбросить такие вещи, как uid
и так далее. Если класс модели исходит от стороннего расширения, выберите один из двух методов, указанных выше.