未克隆新对象
$clonedObj = clone $repatNewsObj;
$this->extendednewsRepository->add($clonedObj);
$this->persistenceManager->persistAll();
答案 0 :(得分:0)
这不是用TYPO3复制extbase对象的方式。可悲的是,仅使用PHP克隆它就不会从extbase的角度重置对象。如果默认存储库的add
方法在数据库中已经有一个uid,它将忽略“新”对象。因此,您的持久调用实际上并没有执行任何操作。
您可以自己创建一个新对象,根据源对象手动设置每个属性,也可以使用数据处理程序复制对象。 blog post(用德语)对此进行了描述,而older SO question在讨论同一问题。
如果要从自己的扩展名中克隆一个对象,则最佳实践是覆盖__clone
方法并在其中重置诸如uid
之类的内容。如果模型类来自第三方扩展,请从上面选择两种方法之一。