, : 1) , 2) , 3) - , "" . , , , , .
, , .
class Order
{
private $items;
public function __construct(Customer $customer)
{
$this->items = new Doctrine\Common\Collections\ArrayCollection();
}
}
class Product
{
private $orders;
.....
public function __construct(Customer $customer)
{
$this->orders = new Doctrine\Common\Collections\ArrayCollection();
}
}
class OrderItem
{
private $order;
private $product;
private $amount = 1;
}
, , Order , OrderItem s, OrderItem, Order Entity ( /SQL ), Doctrine EntityManager Order, OrderItem ( , ). , , , Order. . , , Order, Order . ArrayCollection $items
class Order
{
.....
public function setItemsArray(Doctrine\Common\Collections\ArrayCollection $itemsArray = null){
if(null){
$this->items->clear();
}else{
$this->items = $itemsArray;
}
....
}
, Order.
$em = $this->getDoctrine()->getManager();
$order = $form->getData();
$items = $order->getItems();
$order->setItemsArray(null);
$em->persist($order);
$em->flush();
$order->setItemsArray($items);
$em->persist($order);
$em->flush();
, ( ). , , . , , , , .