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