現在我正在使用Doctrine2和Symfony2一起使用。我有一個名爲「OrderRequest」的實體,其中包含兩個對名爲「OrderRequestPerson」的其他條目類型的引用(這些是訂購者和接收者字段)。在我的表格中,用戶可以選擇設置orderer = receiver或填寫接收者信息。創建新條目而不是使用Doctrine2更新舊條目
我在這個特定的情況下有一個錯誤:一個訂單放在orderer = receiver的位置,因此在數據庫中,orderer和receiver字段具有相同的值(在這種情況下是15,指的是OrderRequestPerson id)。如果管理員發送訂單並將訂單更新到訂單!=接收方的位置,則需要更新接收方字段。目前,實體管理器將更新ID爲15的OrderRequestPerson,從而更新訂購者和接收者。有沒有一種方法可以告訴Doctrine2/Symfony2爲接收器創建一個新條目,並添加一個新ID,並將信息放入該條目中,而不是更新訂閱者信息?
我的代碼下面貼:
// Get the entity manager.
$em = $this->getDoctrine()->getEntityManager();
// Grab the order.
$order = $em->getRepository('OrderRequestBundle:OrderRequest')
->getOrder($id);
// Get important information.
$request = $this->getRequest();
// Create the OrderRequest form.
$form = $this->get('form.factory')->create(new OrderRequestType(), $order);
// Fill the form with the request information.
$form->bindRequest($request);
// Save the information.
$em->flush();
嗯。這可能意味着在綁定任何東西之前,您必須克隆訂購者並將克隆設置爲接收者。嘗試這樣的事情。 – greg0ire