0

我正在尝试将一个对象从教义 2 中的 entity_manager 中分离出来,以便让他进入会话,但它不起作用。不是在有协会的时候。

前任:

<?php
namespace Travelyo\CoreBundle\Entity\Order;
use Doctrine\ORM\Mapping as ORM;
/**

 *     @ORM\Table(name="bundles")
 *    /
class Bundle 
{
/**
 * @var integer $id
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @ORM\ManyToOne(targetEntity="Order", inversedBy="orders",cascade={"detach","merge","remove"})
 * @ORM\JoinColumn(name="order_id", referencedColumnName="id")
 */
private $order;
 }

按顺序没有其他关系。

但是当我试图这样做时

$em = $this->getDoctrine()->getEntityManager();
$bundle = $em->getRepository('TravelyoCoreBundle:Order\Bundle')->find(27);
$em->detach($bundle);
$em->detach($bundle->order);
serialize($bundle);

它不工作,我有所有的对象依赖,代理,......

如果我在 detach $bundle->setOrder(new Order()); 之前这样做

然后序列化是完美的,我只有捆绑包。

我在这里想念什么?

4

1 回答 1

1

即使您的对象已分离,它仍然具有对用于创建它的原则组件的引用。

作为一个简单的建议,我可以告诉您简单地序列化对象标识符。这更干净,虽然它需要您在另一端(反序列化部分)执行查询,但您将避免很多问题。

只是不要序列化你的实体,它只是一团糟。

于 2012-08-12T16:52:37.527 回答