0

我想与数据透视表或通过引用表中的 ID 建立一对一的关系。

我目前有一个与 Stock 表具有一对多关系的 Films 表,每个 Stock 项目都需要一个格式,但是我希望这些格式是一组格式,所以我创建了一个只有 2 列 ID 的 Formats 表和名称

通常我只会在 Stock 表中添加一个 Format_ID 列,但是我不确定这将如何与 Eloquent ORM 一起工作,或者它是否可能/最佳实践

抱歉,如果这很难理解,我想不出最好的解释方式

4

1 回答 1

0

您想要的结构是非常标准的做法。很有可能!

您将使用哪种 Eloquent 关系取决于关系的方向。每个Stock人都有一个Format(一对一)。但是每个Format都可以分配给多个Stock(一对多)。

对于前者,您的StockEloquent 模型将具有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');
于 2013-10-14T05:46:00.417 回答