如何使用Symfony原理从数据库中克隆所有数据?

马里拉

我尝试克隆我data实体中具有该item值的所有记录cf7c1ae00f

    $dataEntity= new Data();
    $cloneArray = $this->em->getRepository(Data::class)->findBy(['item' => 'cf7c1ae00f']);

    foreach ($cloneArray as $cloneItem) {
      $fieldClone = clone $cloneItem;
      $dataEntity->setItem($fieldClone);
      $this->em->persist($dataEntity);
    }
    $this->em->flush();

在我的数据库中,有5条记录。因此,我希望再添加5条记录。但是只添加一个记录。

耶罗恩

您正在$dataEntity用相同的内容编写5次相同的内容。您可以在循环中构造该对象以解决您的问题,但也可以$fieldClone直接将其持久保存,并$dataEntity完全跳过该变量。

但是,实体具有唯一的ID,当您尝试保留克隆的实体时,这将导致错误。您将必须清空集合/数据库中必须唯一的id和其他属性。

clone使用关键字,可以使用__clone()对象所属类方法轻松地在新对象上设置一些初始值

因此,如果只需要清空ID,则可以向Data该类添加一个clone方法,并将循环更改为:

资料类别:

public function __clone() { 
    $this->id = null; 
}

克隆代码:

$cloneArray = $this->em->getRepository(Data::class)->findBy(['item' => 'cf7c1ae00f']);

foreach ($cloneArray as $cloneItem) {
    # Clone the object and automatically run the `__clone()` method of the class
    $fieldClone = clone $cloneItem;
    $this->em->persist($fieldClone);
}
$this->em->flush();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何查看数据库中的所有数据?

如何从数据库中的表中获取所有数据并使用php显示呢?

如何删除CockroachDB中的所有数据库?

如何使用Hibernate查找数据库中的所有数据?

如何使用 Raven Studio 查询 Raven db 中的所有数据库

如何使用 Powershell 列出 Axure 订阅中的所有数据库并进行过滤?

如何使用js从我的数据库中获取所有数组值

如何从Firebase数据库获取所有数据?

如何从sqlite数据库检索所有数据?

显示数据库中的所有数据行

仅使用特定列的数据列表控件显示数据库中的所有数据

如何显示MySQL中的所有数据库以及foreach数据库显示所有表

如何使用c#中的现有数据库创建新数据库?

如何在Databricks中显示所有数据库中的所有表

如何从数据库中的现有数据生成子弹字段-Doctrine Symfony2

如何从现有数据库更新 Symfony 实体?

MySQL-如何更改所有数据库中的列数据类型?

如何在php中获取和显示数据库的所有数据

如何从数据库表中打印该特定选项的所有数据?

如何从Firebase数据库中删除所有数据?

如何从单个 SQLite 数据库列中获取所有数据以计算总价

如何显示sqlite数据库中的所有数据

如何从数据库中检索特定位置的所有数据

如何将 SQL 数据库中的所有数据加载到 Hazelcast 云?

使用Laravel APi时搜索返回数据库中的所有数据

如果所有数据都在ajax请求或数据库中,请使用redux

尝试使用反射将所有数据从数据库表显示到Jtable中

使用Python请求无法将所有数据存储到Django数据库中

拦截Java中的所有数据库调用