<?php namespace Doctrine\Tests\Models\ECommerce; use Doctrine\Common\Collections\ArrayCollection; /** * ECommerceCart * Represents a typical cart of a shopping application. * * @author Giorgio Sironi * @Entity * @Table(name="ecommerce_carts") */ class ECommerceCart { /** * @Column(type="integer") * @Id * @GeneratedValue */ private $id; /** * @Column(length=50, nullable=true) */ private $payment; /** * @OneToOne(targetEntity="ECommerceCustomer", inversedBy="cart") * @JoinColumn(name="customer_id", referencedColumnName="id") */ private $customer; /** * @ManyToMany(targetEntity="ECommerceProduct", cascade={"persist"}) * @JoinTable(name="ecommerce_carts_products", joinColumns={@JoinColumn(name="cart_id", referencedColumnName="id")}, inverseJoinColumns={@JoinColumn(name="product_id", referencedColumnName="id")}) */ private $products; public function __construct() { $this->products = new ArrayCollection; } public function getId() { return $this->id; } public function getPayment() { return $this->payment; } public function setPayment($payment) { $this->payment = $payment; } public function setCustomer(ECommerceCustomer $customer) { if ($this->customer !== $customer) { $this->customer = $customer; $customer->setCart($this); } } public function removeCustomer() { if ($this->customer !== null) { $customer = $this->customer; $this->customer = null; $customer->removeCart(); } } public function getCustomer() { return $this->customer; } public function getProducts() { return $this->products; } public function addProduct(ECommerceProduct $product) { $this->products[] = $product; } public function removeProduct(ECommerceProduct $product) { return $this->products->removeElement($product); } }