2012-10-06 230 views
2

我正在執行從訂單到產品的ManyToMany單向關係,一個訂單可以有多個產品,一個產品可以有多個訂單。完整性約束違規:1048 DOCTRINE

見我的代碼:

/** 
* @ManyToMany(targetEntity="Product") 
* @JoinTable(name="dc_order_products", 
*  joinColumns={@JoinColumn(name="order_id", referencedColumnName="id")}, 
*  inverseJoinColumns={ 
*   @JoinColumn(name="product_id", referencedColumnName="id"), 
*   @JoinColumn(name="product_price", referencedColumnName="product_price")  
*  }) 
**/ 
protected $order_products; 

我並沒有在所有的谷歌找到如何使用多個@JoinColumns在inverseJoinColumns,所以我剛纔複製的第一個,以逗號分隔。

的問題是,當我運行這段代碼的項目:

$p = new \Entities\Product(get_date(), 'Product Name', 'Description', 39, 85, 0, 0, 1); 
$em->persist($p); 
$em->flush(); 

$o = new \Entities\Order($u->getUserId(), get_date(), 1, 150); 

$o->addOrderProduct($p); 

$em->persist($o); 
$em->flush(); 

它給我:

完整性約束違規:1048列 'PRODUCT_PRICE' 不能爲空

但是價格被定義了,我在產品對象中做了一個print_r,它在那裏。

我錯過了什麼?

+0

您能告訴我們價格註解和價格設定方法嗎? – mbinette

+0

Id產品類別/ ** @Column(type =「decimal」,nullable = true)*/ protected $ product_price; –

+0

價格是在Product類的構造函數中設置的,當我在$ p變量中設置一個新實例時。 –

回答

相關問題