簡體   English   中英

ORM關系(可能是Kohana特定)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM