私は理解できないような奇妙な問題に遭遇しました。エンティティは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;
「関連するテーブルに与えられたデータを維持します。コントローラは一度に複数のテーブルに保持されますか(カスケード)? setOrderIdを使用する前にデータをテーブルに保持しようとしていますか? – mcriecken
いいえ、これは単なる表です。orderIdは主キーでも自動インクリメントでもありません(この表は注文合計表であるため複写できます)。私はこれを追加するセットのリストのどこに関係なく、それは常にそれをスキップします。 –