2012-08-08 26 views
0

我试图分离一个对象在doctrine2 entity_manager为了让他在会议,但它不工作。不是什么时候有协会。doctrine2分离不起作用,当有会话中的订单相关联

例:

<?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); 

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

如果我在这之前分离 $ bundle-> setOrder(new Order());

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

我在这里错过了什么?

回答

1

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

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

只是不要序列化你的实体,它只是凌乱。

+0

好的谢谢你的提示 – 2012-08-14 07:13:04