Doctrine orm doctrine2和x27;在会话中,如果有关联,则无法正常工作

Doctrine orm doctrine2和x27;在会话中,如果有关联,则无法正常工作,doctrine-orm,Doctrine Orm,我试图从doctrine2中的实体_管理器中分离一个对象,以便将其置于会话中,但它不起作用。当有关联的时候就没有了 例: 它不工作,我有所有的对象依赖,代理 如果我在拆离前这么做 $bundle->setOrder(新订单()) 那么序列化就完美了,我只有一个包 我在这里遗漏了什么?即使您的对象被分离,它仍然有用于创建它的条令组件的引用 作为一个简单的建议,我可以告诉您只需序列化对象标识符即可。这更简洁,虽然需要在另一端执行查询(非序列化部分),但可以避免很多问题 只是不要序列化你的实体,这很混

我试图从doctrine2中的实体_管理器中分离一个对象,以便将其置于会话中,但它不起作用。当有关联的时候就没有了

例:

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

如果我在拆离前这么做 $bundle->setOrder(新订单())

那么序列化就完美了,我只有一个包


我在这里遗漏了什么?

即使您的对象被分离,它仍然有用于创建它的条令组件的引用

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

只是不要序列化你的实体,这很混乱

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