簡體   English   中英

Laravel 4一對一關系

[英]Laravel 4 One to One relationship

我想與數據透視表或通過引用表中的ID建立一對一的關系。

我目前有一個Films表,它與Stock表具有一對多的關系,每個stock項目都需要一種格式,但是我希望這些格式是一組格式列表,所以我創建了一個只有2列ID的Formats表和名稱

通常,我只是將一個Format_ID列添加到Stock表中,但是我不確定這如何與Eloquent ORM一起使用,或者不確定是否可行/最佳實踐

抱歉,如果這很難理解,就無法找出解釋它的最佳方法

您想要的結構是相當標准的做法。 很有可能!

您將使用哪種雄辯的關系取決於關系的方向。 每個Stock都有一種Format (一對一)。 但是每種Format都可以分配給多個Stock (一對多)。

對於前者,您的Stock hasOne()模型將具有hasOne()一對一關系。

class Stock extends Eloquent {

    public function format()
    {
        return $this->hasOne('Format');
    }
}

對於后者,您的Format雄辯模型將具有hasMany()一對多關系。

class Format extends Eloquent {

    public function stock()
    {
        return $this->hasMany('Stock');
    }
}

請注意,將這兩個定義都完全可以接受並且是正常的。 這實際上取決於您需要與您的關系發展的方向。 如果您不需要查找什么Stock屬於特定Format ,則不需要一對多關系。

還要注意,如果您的欄名不容易被Eloquent猜中,則可能需要添加一個列鍵參數。 例如:

return $this->hasOne('Format', 'my_format_id');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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