2012-02-20 184 views
0

我有這樣關係在模型之間的Yii

+------------------+ 
|  Invoices  | 
+------------------+ 
| id    | 
| customer_id (Fk) | 
| description  | 
+------------------+ 

+------------------+ 
| InvoiceItems | 
+------------------+ 
| id    | 
| Item_name  | 
| price   | 
| discount   | 
| description  | 
+------------------+ 

+------------------+ 
| Customers  | 
+------------------+ 
| id    | 
| firstname  | 
| lastname   | 
| description  | 
+------------------+ 

數據庫根據我做的模型關係如下數據庫。
發票模型中,關係是這樣的

public function relations() 
{ 
return array(
    'invoiceitem' => array(self::HAS_MANY,'InvoiceItems','invoice_id'), 
    'customers' => array(self::BELONGS_TO,'Customer','customer_id'), 
); 
} 

在InvoiceItems模型關係是這樣的

public function relations() 
{ 
return array(
    'invoice' => array(self::BELONGS_TO,'Invoices','invoice_id'), 
); 
} 

在客戶關係模式是這樣的

public function relations() 
{ 
    return array(
    'invoice' => array(self::HAS_MANY, 'Invoices','customer_id') 
); 
} 

現在我想要知道這些模型之間的關係是否正確?

+0

你的關係是正確的前提是你有外鍵由邁克爾 – 2012-02-21 14:56:09

回答

0

您的發票項目在表格描述中沒有名爲invoice_id的字段。這些關係需要參考工作的主要關鍵。您在關係中聲明的db字段應該包含您正在使用的模型的主鍵。因此,如果您使用發票處理,則HAS_MANY關係應能夠在物品的invoice_id字段中找到發票的ID。 你也可以使用一個單獨的表關係數據,並宣佈它像:

array(self::HAS_MANY,'InvoiceItems',reltable('invoice_id', 'item_id)) 

你可以閱讀更多關於關係here

+0

提到,謝謝你的答覆。我忘了在我的問題中的InvoiceItems表中寫入invoice_id。實際上,我已經從我的網站上定義了這個。任何你能告訴我的是模型之間的關係是正確的嗎?這樣我就可以繼續...... – NewUser 2012-02-21 06:29:01