2012-08-08 45 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