如何将实体重新保存为原则 2 中的另一行

2023-12-07

假设我有实体$e。是否有任何通用方法将其存储为另一行,该行将具有相同的实体数据但另一个主键?

为什么我需要这个:我正在实施某种时态数据库架构,我只需要创建另一行,而不是更新该行。


尝试克隆并将以下方法添加到您的实体中

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

您可能需要detach持久化之前的实体。我现在没有方便的开发机器来测试这个。

$f = clone $e;
$em->detach($f);
$em->persist($f);
$em->flush();

Update

刚刚尝试使用一个简单的 SQLite 演示。你不需要做任何事情。以下内容对我有用,无需添加__clone()方法或做任何其他不寻常的事情

$new = clone $old;
$em->persist($new);
$em->flush();

一旦冲洗完毕,$new实体有一个新的 ID 并在数据库中保存为新行。

我仍然会通过以下方式将 ID 属性清空__clone()方法,因为它从纯模型角度来看是有意义的。

Update 2

深入研究 Doctrine 代码,这是因为生成的代理类实现了__clone()这条重要的线

unset($this->_entityPersister, $this->_identifier);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将实体重新保存为原则 2 中的另一行 的相关文章

随机推荐

  • 表格行上的框阴影未出现在某些浏览器上

    表格行上的 CSS 框阴影 tr 跨浏览器的工作似乎不一致 在某些浏览器上会显示阴影 在其他人身上 没有影子 我正在使用以下 CSS tr background color rgb 165 182 229 box shadow 0px 2p
  • 如何取消设置 JavaScript 变量?

    我在 JavaScript 中有一个全局变量 实际上是一个window属性 但我认为这并不重要 它已经由以前的脚本填充 但我不希望稍后运行另一个脚本来查看它的值 或者甚至定义它 我已经把some var undefined它用于测试目的ty
  • Excel VBA 对于带有数据验证列表的每个循环

    我有 4 个数据验证下拉列表 我想使用 for every 循环来迭代 4 个数据验证下拉列表的所有可能值 并将结果复制到工作表中 下拉菜单位于单元格 H3 和 H4 以及 U3 和 U4 中 H3 和 U3 包含相同的值 H4 和 U4
  • 字符编码 - RequestDispatcher

    我有一个 servlet 我使用 String error error request setAttribute loginError error request setCharacterEncoding UTF 8 request get
  • 如何导出 Spearman 相关性

    我正在尝试将 Spearman 相关矩阵导出到rtf或 Excel 文件使用estpost和社区贡献的命令esttab 但是 我收到以下错误 invalid subcommand r 198 下面是我的代码 estpost spearman
  • ASIO 直接从异步解析获取 tcp 端点

    我正在寻找使用 ASIO 独立库 不是 Boost ASIO 我正在尝试设置客户端以连接到特定端口上的服务器 我看到在波特漏斗例如 无需处理迭代器即可获取端点 asio io service io service Determine the
  • Xcode:为什么“用户交互已启用”出现两次?

    这个问题适用于 Xcode 3 和 4 为什么这个复选框出现两次 在身份检查器和属性检查器下 更重要的是 为什么改变一个值不会影响另一个值呢 身份检查器中启用的用户交互指的是可访问性协议 这是一个链接无障碍编程指南您可以勾选不同的特征来修改
  • jquery新手:将验证与隐藏提交按钮结合起来

    我是 jQuery 新人 我已经验证可以使用我的表单 MVC 1 0 C
  • 如何在VBA中对变量范围内的值求和?

    我有一张表格 如下所示 在 C 列中 如果 A 列具有相同的索引 B 列 我想对 A 列中的值求和 如果所有行具有相同的索引 如 D 列所示 我想对所有行输入总和结果 不幸的是 具有相同索引的值的范围是可变的 我的宏可以仅使用 2 个索引对
  • python sendall 未引发连接关闭错误

    我有以下代码 在 linux mac 远程和本地计算机上使用 python2 7 和 python3 5 进行了测试 import socket import time s socket socket s connect 127 0 0 1
  • 无法解码流 java.io.FileNotFoundException /storage/emulated/0 打开失败:ENOENT(没有这样的文件或目录

    你好 我正在尝试保存在我的应用程序上拍摄的图片 但是当我尝试访问内存来放置数据时 出现错误 无法解码流 java io FileNotFoundException storage emulated 0 打开失败 ENOENT 没有这样的文件
  • 获取 Facebook 上好友的好友列表

    我最近开始研究 Facebook API 并试图找出如何检索另一个用户的朋友列表 在本例中 该用户是我的朋友 到目前为止 我只知道如何找到我也是朋友的人的朋友 然而 Friends Wheel 应用程序可以做到这一点 因为您可以为您的一位朋
  • 如何确定C++函数调用顺序?

    我将跳过标题 class X int i static int j public X int ii 1 i ii j i static int incr return j static int f return incr int tmain
  • 在 WordPress 中上传期间重命名文件

    我正在尝试重命名上传文件名以匹配帖子标题 另一个线程显示了如何重命名为哈希 在 WordPress 后端上传期间重命名文件 使用此代码 function make filename hash filename info pathinfo f
  • 在 Firefox 扩展中按域名/名称访问特定 cookie

    我正在开发一个 Firefox 扩展 需要从特定域访问特定 cookie 我有这段代码 可以获取所有域的所有 cookie 我如何仅请求我正在查找的 cookie var Cc Ci require chrome var cookieMan
  • Xamarin Forms旋转列表视图调整行宽

    在 Xamarin Forms 中 我想实现一个水平列表视图 如下图所示 通过旋转这是可能的 但我无法更改行宽 是否也有可能让第二个布局在第一个布局下开始 提前致谢
  • 无法让 AVAssetImageGenerator 为我提供电影的所有帧

    我不能有AVAssetImageGenerator给我一部电影的所有帧 使用此代码 NSString path NSBundle mainBundle pathForResource video ofType mov NSURL url N
  • MySQL中使用UNION时如何知道结果来自哪个表

    我正在使用联合查询 SELECT snippet id title FROM tbl snippets WHERE title LIKE UNION SELECT tag id tag FROM tbl tags WHERE tag LIK
  • 哪种使用 C 数组的数据组织可以生成最快的代码?为什么?

    给定以下数据 组织元素数组以便实现最快随机访问的最佳方法是什么 每个元素都有一些 int 数字 一个以 0 结尾的 3 个字符的名称和一个浮点值 我看到两种可能的方法来组织和访问此类数组 First typedef struct int n
  • 如何将实体重新保存为原则 2 中的另一行

    假设我有实体 e 是否有任何通用方法将其存储为另一行 该行将具有相同的实体数据但另一个主键 为什么我需要这个 我正在实施某种时态数据库架构 我只需要创建另一行 而不是更新该行 尝试克隆并将以下方法添加到您的实体中 public functi