2016-09-09 7 views
0

私は理解できないような奇妙な問題に遭遇しました。エンティティはDoctrine 2に1つの値を残さない

私はDoctrineを実装し、OpenCartデータベースを使用してSymfony 2でCRMを作成しています。

CRMを使用して注文を追加する機能がありますが、これは関連するテーブルに与えられたデータを維持しますが、最終的なハードルに落ちています。私はエラーを取得しています何らかの理由でまだ注文IDを保持しようとしている:

order_id cannot be null

これは、エンティティエントリがファイルに設定されている方法です。

/** 
* @var integer 
* 
* @ORM\Column(name="order_id", type="integer", nullable=false) 
*/ 
private $orderId; 

そして、私は」これを使用して、mは、それを設定します:私は(私も、設定された機能にそれをハードコーディングしようとした)が、それを永続化する前にそれをプリントアウトしてきたように$のORDER_IDは、整数値を持っているという事実を知って

$order_option->setOrderId($order_id); 

まだヌルに終わる。

他のすべてのセットが動作しているので、なぜこれが起こっているのか混乱しています。さらに、デバッグしようとすると、$this->orderId変数に値が正しく割り当てられています。

誰かが多分私に感謝するだろうこれについていくつかの光を当てることができる場合。あなたはおそらく@ORM\Id

/** 
* @var integer 
* 
* @ORM\Column(name="order_id", type="integer", nullable=false) 
* @ORM\Id 
*/ 
private $orderId; 
+0

「関連するテーブルに与えられたデータを維持します。コントローラは一度に複数のテーブルに保持されますか(カスケード)? setOrderIdを使用する前にデータをテーブルに保持しようとしていますか? – mcriecken

+0

いいえ、これは単なる表です。orderIdは主キーでも自動インクリメントでもありません(この表は注文合計表であるため複写できます)。私はこれを追加するセットのリストのどこに関係なく、それは常にそれをスキップします。 –

答えて

0

を追加するのを忘れている

0

はそれを考え出しました!

order_idによって結合されたエンティティに$productという保護された変数がありましたが、これは永続化または参照されません。だから、私はそれを削除したばかりで、今度はorder_idが通常どおり永続化されます。

+0

しかし、それは主なIdではありません。 –

関連する問題