我想与数据透视表或通过引用表中的 ID 建立一对一的关系。
我目前有一个与 Stock 表具有一对多关系的 Films 表,每个 Stock 项目都需要一个格式,但是我希望这些格式是一组格式,所以我创建了一个只有 2 列 ID 的 Formats 表和名称
通常我只会在 Stock 表中添加一个 Format_ID 列,但是我不确定这将如何与 Eloquent ORM 一起工作,或者它是否可能/最佳实践
抱歉,如果这很难理解,我想不出最好的解释方式
您想要的结构是非常标准的做法。很有可能!
您将使用哪种 Eloquent 关系取决于关系的方向。每个Stock
人都有一个Format
(一对一)。但是每个Format
都可以分配给多个Stock
(一对多)。
对于前者,您的Stock
Eloquent 模型将具有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');