如果我有一個用戶表和郵件表,我必須定義一個email.php
模型User.php
來定義這種關係:也我是否需要爲所有關聯定義模型?
static $has_many = array(
array('emails')
);
,如果我有這樣的電子郵件,可以是一個對象外鍵與可以擁有該對象的其他對象的關係,我如何定義電子郵件可以belong_to users
和belong_to domains
?
如果我有一個用戶表和郵件表,我必須定義一個email.php
模型User.php
來定義這種關係:也我是否需要爲所有關聯定義模型?
static $has_many = array(
array('emails')
);
,如果我有這樣的電子郵件,可以是一個對象外鍵與可以擁有該對象的其他對象的關係,我如何定義電子郵件可以belong_to users
和belong_to domains
?
你在使用框架嗎?
如果你不應該使用每個模型的靜態吸氣。
你應該在它的數據字段使用惰性加載。
所以,如果你寫的電子郵件 - >的getUser(),你會得到一個用戶對象只知道它的ID,並可以從數據庫需要的時候延遲加載數據。
要知道總是知道你在做什麼(有時它更好地使用連接,以避免N次查詢(用環或取數據時拋出超過2個表))。
我建議你不要寫你自己的ORM或活動記錄的實現,除非你想學的東西。
更好地利用doctrine2或爲您的項目等效框架。
如果使用phpAR默認命名約定,則不必定義模型。 雖然你可能想要,如果你使用關聯。如果不定義Email
模型及其belongs_to
關係User
,您將無法通過Email
訪問User
(僅反之亦然,Email
通過User
)
多belongs_to
通過陣列來實現的:
class Email extends ActiveRecord\Model {
static $belongs_to = array(
array('user'),
array('domain')
);
}
注意,對於belongs_to
你必須使用單數形式,沒有複數
我正在使用http://www.phpactiverecord.org/和CodeIgniter。 – StackOverflowed