【问题标题】:Zend 1.x and Doctrine 2 - problem copying an object and its relationsZend 1.x 和 Doctrine 2 - 复制对象及其关系的问题
【发布时间】:2011-09-12 15:23:47
【问题描述】:

我正在尝试实现等效的 ->copy(true);在我的 Doctrine 2 应用程序中存在于 Doctrine 1.x 中的方法,但它不起作用。

有人知道 ->copy() 发生了什么吗?

谢谢

【问题讨论】:

    标签: php zend-framework doctrine-orm


    【解决方案1】:

    我认为你应该使用clone:

    $new_one = clone $entity;
    $manager->persist($new_one);
    

    如果你也想克隆关联,你可能想在__clone中克隆它们:

    function __clone() {
        $this->someAssoc = clone $this->someAssoc;
    }
    

    有一些限制,见http://www.doctrine-project.org/docs/orm/2.0/en/cookbook/implementing-wakeup-or-clone.html

    【讨论】:

    • 感谢您的快速回复。克隆是一个不知道任何相关实体的 php 函数。我也需要复制/克隆所有相关实体。
    • 答案的另一半:)
    • 谢谢 :) 这些关联是否需要单独保留?如果我只对父对象执行此操作,它们似乎不会持久化。
    • 视情况而定;在关联上使用 cascade={"persist"} 以自动保持关联
    • 我已经在其关联对象上使用了级联持久化,但我没有运气 - 感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 2017-06-16
    • 2013-10-11
    相关资源
    最近更新 更多