[英]ORM relationships (possibly Kohana specific)
我有幾種模型,一種是通知,一種是嚴重性。 通知具有嚴重性。
我的數據庫中的“我的通知”表(簡體)如下
id => int
message => text
severity_id => int
我的嚴重性表包含以下列
id => int
name => varchar(20)
在我的通知模型中,我有以下關系
protected $_has_one = array(
'severity' => array(
'model' => 'NotificationSeverity',
'foreign_key' => 'id' )
);
我不知道如何告訴它使用“ severity_id”作為關系的這一方面。
我希望能夠直接從通知對象訪問嚴重性,即$ notification-> severity-> name等。
我還嘗試通過在該關系的另一側設置has_many關系,如下所示,以便可以訪問具有特定優先級的所有通知的列表。
protected $_has_many = array(
'notifications' => array( 'model' => 'Notification',
'foreign_key' => 'severity_id' )
);
我究竟做錯了什么?
編輯:我可以根據需要更改數據庫和/或代碼。
您需要在關系的兩側使用相同的foreign_key
。 has_many也需要對應的部分是belongs_to 。
has_many表示“擁有”,就像has_one一樣,而belongs_to表示“被擁有”。 因此,您不能讓一個站點擁有另一個站點,而另一個站點也擁有另一個站點(除非您具有has_many_through )。 這意味着,當一側具有has_one / has_many模型時,相應的一側需要屬於(to)_to。
通知
$_belongs_to = array(
'severity' => array(
'model' => 'NotificationSeverity',
'foreign_key' => 'severity_id',
)
);
通知嚴重性
$_has_many = array(
'notifications' => array(
'model' => 'Notification',
'foreign_key' => 'severity_id',
)
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.