• <bdo id='m1eq2'></bdo><ul id='m1eq2'></ul>
    <legend id='m1eq2'><style id='m1eq2'><dir id='m1eq2'><q id='m1eq2'></q></dir></style></legend>
      1. <tfoot id='m1eq2'></tfoot>
      2. <small id='m1eq2'></small><noframes id='m1eq2'>

        <i id='m1eq2'><tr id='m1eq2'><dt id='m1eq2'><q id='m1eq2'><span id='m1eq2'><b id='m1eq2'><form id='m1eq2'><ins id='m1eq2'></ins><ul id='m1eq2'></ul><sub id='m1eq2'></sub></form><legend id='m1eq2'></legend><bdo id='m1eq2'><pre id='m1eq2'><center id='m1eq2'></center></pre></bdo></b><th id='m1eq2'></th></span></q></dt></tr></i><div id='m1eq2'><tfoot id='m1eq2'></tfoot><dl id='m1eq2'><fieldset id='m1eq2'></fieldset></dl></div>

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

        How to re-save the entity as another row in Doctrine 2(如何将实体重新保存为 Doctrine 2 中的另一行)

          <tbody id='PQsB2'></tbody>
        <i id='PQsB2'><tr id='PQsB2'><dt id='PQsB2'><q id='PQsB2'><span id='PQsB2'><b id='PQsB2'><form id='PQsB2'><ins id='PQsB2'></ins><ul id='PQsB2'></ul><sub id='PQsB2'></sub></form><legend id='PQsB2'></legend><bdo id='PQsB2'><pre id='PQsB2'><center id='PQsB2'></center></pre></bdo></b><th id='PQsB2'></th></span></q></dt></tr></i><div id='PQsB2'><tfoot id='PQsB2'></tfoot><dl id='PQsB2'><fieldset id='PQsB2'></fieldset></dl></div>
        1. <legend id='PQsB2'><style id='PQsB2'><dir id='PQsB2'><q id='PQsB2'></q></dir></style></legend>

        2. <tfoot id='PQsB2'></tfoot>
            <bdo id='PQsB2'></bdo><ul id='PQsB2'></ul>

                  <small id='PQsB2'></small><noframes id='PQsB2'>

                  本文介绍了如何将实体重新保存为 Doctrine 2 中的另一行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

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

                  Let's say I have entity $e. Is there any generic way to store it as another row, which would have the same entity data but another primary key?

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

                  Why I need this: I'm implementing some sort of Temporal Database schema and instead of updating the row I just need to create another one.

                  推荐答案

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

                  Try cloning and add the following method to your entity

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

                  您可能需要分离 实体.我现在手边没有我的开发机器来测试这个.

                  You may need to detach the entity before persisting it. I don't have my dev machine handy to test this right now.

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

                  更新

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

                  Update

                  Just tried using a simple SQLite demo. You shouldn't need to do anything. The following worked for me without adding a __clone() method or doing anything else out of the ordinary

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

                  刷新后,$new 实体有一个新 ID,并在数据库中保存为新行.

                  Once flushed, the $new entity had a new ID and was saved as a new row in the DB.

                  我仍然会通过 __clone() 方法将 ID 属性设为空,因为从纯模型视图来看它是有意义的.

                  I would still null the ID property via the __clone() method as it makes sense from a pure model view.

                  深入 Doctrine 代码,这是因为生成的代理类使用这一重要行实现了 __clone()

                  Digging into the Doctrine code, this is because the generated proxy classes implement __clone() with this important line

                  unset($this->_entityPersister, $this->_identifier);
                  

                  这篇关于如何将实体重新保存为 Doctrine 2 中的另一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Is PHP or PHP based web framework stateful or stateless?(PHP 或基于 PHP 的 Web 框架是有状态的还是无状态的?)
                  How to parse django style template tags(如何解析 django 样式模板标签)
                  What is a good setup for editing PHP in Emacs?(在 Emacs 中编辑 PHP 的好设置是什么?)
                  How to check whether specified PID is currently running without invoking ps from PHP?(如何在不从 PHP 调用 ps 的情况下检查指定的 PID 当前是否正在运行?)
                  What#39;s the difference between escapeshellarg and escapeshellcmd?(escapeshellarg 和escapeshellcmd 有什么区别?)
                  php in background exec() function(php 后台 exec() 函数)

                  <small id='CkmD7'></small><noframes id='CkmD7'>

                        <tbody id='CkmD7'></tbody>
                        <bdo id='CkmD7'></bdo><ul id='CkmD7'></ul>

                          <i id='CkmD7'><tr id='CkmD7'><dt id='CkmD7'><q id='CkmD7'><span id='CkmD7'><b id='CkmD7'><form id='CkmD7'><ins id='CkmD7'></ins><ul id='CkmD7'></ul><sub id='CkmD7'></sub></form><legend id='CkmD7'></legend><bdo id='CkmD7'><pre id='CkmD7'><center id='CkmD7'></center></pre></bdo></b><th id='CkmD7'></th></span></q></dt></tr></i><div id='CkmD7'><tfoot id='CkmD7'></tfoot><dl id='CkmD7'><fieldset id='CkmD7'></fieldset></dl></div>
                          <legend id='CkmD7'><style id='CkmD7'><dir id='CkmD7'><q id='CkmD7'></q></dir></style></legend><tfoot id='CkmD7'></tfoot>