2016-07-22 2 views
-1

Хотелось бы создать простую и маленькую корзину покупок. У меня есть предприятие Корзина, Заказ и Пользователь. Я хочу знать, как создать новый заказ на основе данных из корзины покупок после того, как пользователь нажмет отправить корзину.Как создать заказ с данными корзины покупок

Я не ищу код, но я хотел бы иметь некоторые идеи, как это сделать.

class Cart 
{ 
/** 
* @var integer 
* 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

/** 
* @ORM\ManyToOne(targetEntity="UserBundle\Entity\User") 
* @ORM\JoinColumn(nullable=false) 
*/ 
private $user; 

/** 
* @var integer 
* 
* @ORM\Column(name="quantity", type="integer") 
*/ 
private $quantity; 

//....... 
} 

объект Order

class Order 
{ 
/** 
* @var integer 
* 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

/** 
* @ORM\ManyToOne(targetEntity="UserBundle\Entity\User") 
* @ORM\JoinColumn(nullable=false) 
*/ 
private $user; 

/** 
* @var date 
* 
* @ORM\Column(name="date", type="date") 
*/ 
private $date; 

//...... 

} 

ответ

0

Вы, вероятно, нужно использовать ArrayCollection в вашей корзине & заказа лиц.

Что-то вроде этого:

use Doctrine\Common\Collections\ArrayCollection; 
use Doctrine\ORM\Mapping as ORM; 

class Cart{ 
... 

    protected $items = null; 

    // Constructor. 
    public function __construct(){ 
     $this->items = new ArrayCollection(); 
    } 

    // Add item. 
    public function addItem($item){ 
     $this->items[] = $item; 
    } 

Тогда же в вашем заказе добавить функцию добавления/удаления элементов в ваш заказ. Я думаю, этого достаточно, чтобы вы начали.

EDIT # 2 На основе комментариев от дома.

Думаю, теперь я вижу, что вы просите у себя дома. Когда вы представить "корзину, а затем:

1) Create new Order. 
2) Iterate over Cart items. 
3) Remove items from Cart and Add to Order. 
4) Proceed to Checkout to confirm that Order is correct. 
5) Commit or revert changes. 

Я думаю, что выше примерно стандартный рабочий процесс.

+0

Я хочу знать, как создать новый заказ на основе данных из корзины покупок после того, как пользователь нажмет отправить корзину. – hous

+0

В своем посте вы сказали: «Я не ищу код, но я хотел бы иметь некоторые идеи, как это сделать», и Edit # 2 действительно отвечает на это. Можете ли вы подтвердить дом? Если вы не ищете что-то еще ... –

Смежные вопросы