繁体   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