2016-09-09 74 views
0

我碰到了一個我似乎無法弄清楚的奇怪問題。實體在教義2中不堅持一個值

我在Symfony 2中實現Doctrine並使用OpenCart數據庫創建了一個CRM。

有能力通過CRM添加訂單,該訂單將相關表格中的數據保留下來,但我正在陷入最後的障礙。我試圖堅持訂單ID但出於某種原因,我得到的錯誤:

order_id cannot be null

這是實體條目如何設置文件:

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

而且我使用這種米到設置:

$order_option->setOrderId($order_id); 

我知道一個事實,即$ ORDER_ID有一個整數值,因爲我堅持(我甚至嘗試硬編碼成一組功能),但它之前打印出來仍然結束爲空。

我很困惑,爲什麼發生這種情況是因爲所有其他的設置都在工作,再加上它甚至可以正確地賦值給$this->orderId變量,因爲我也嘗試過調試它。

如果任何人都可以對此有所瞭解,我將不勝感激。

+0

你說「堅持給出的數據到相關的表格。」控制器是否一次保持多個表(級聯)?是否可能試圖在setOrderId之前將數據保存到表中? – mcriecken

+0

不,它只是一個單獨的表,orderId不是主鍵,也不是autoincremental(它可以重複,因爲此表是order total table)。無論我在添加這個組的列表中的哪個位置,它總是跳過它。 –

回答

0

想通了!

在由order_id加入的實體中存在一個名爲$product的受保護變量,但是這個永遠不會被保留或引用。所以,我剛剛刪除它,現在order_id一直保持正常。

0

你可能已經忘記了添加@ORM\Id

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

雖然它不是主要的ID。 –