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