2016-07-22 11 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; 

//....... 
} 

エンティティ注文

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

あなたの記事では、「私はコードを探していませんが、それを行う方法をいくつか考えてみたいです」と言っています。編集#2はそれに答えています。家を確認できますか?あなたが何か他のものを探していない限り... –

関連する問題