Laravel 一对多关系和一对一关系

Posted

技术标签:

【中文标题】Laravel 一对多关系和一对一关系【英文标题】:Laravel one to many relation with a one to one relation 【发布时间】:2018-09-27 02:11:20 【问题描述】:

我可能做错了,但我需要一个模型来建立一对多和一对一的关系。

我有以下表格:

bots bot_settings message section

我有以下关系:

Bot 属于 Section(一对多) BotSettings 属于 Bot(一对一) ArMessage 属于 Section(一对多)

所有这一切都按预期工作,我遇到了问题:

ArMessageBotSettings 也有一对一的关系

我已经让它们属于一个部分,我不确定如何将它们链接到一个 BotSetttings,我认为我可能需要更改我的关系,但不确定如何。

我阅读了文档并尝试了所有内容,不知道现在该尝试什么。

任何帮助将不胜感激!

【问题讨论】:

你一定是在开玩笑,你已经用其他桌子做了这个 【参考方案1】:

您可以使用这种方法进行一对一或一对多

公共函数你的方法() return Modalnamewhereyouwanttoretrive::where('yourcolmn',$this->foreign_key)->get();

【讨论】:

【参考方案2】:

您可以尝试使用hasManyThrough 关系将一个连接到所有其他连接。

return $this->hasManyThrough(
            'App\BotSettings',
            'App\Section',
            'bot_settings_id', // Foreign key on BotSettings table...
            'section_id', // Foreign key on Sections table...
            'id', // Local key on BotSettings table...
            'id' // Local key on Sections table...
        );

【讨论】:

以上是关于Laravel 一对多关系和一对一关系的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:belongsTo()关系假设一对多关系而不是一对一

Laravel5.6 Eloquent ORM 关联关系,一对一和一对多

#ASK Laravel 深厚的口才关系,来自患者一对多注册一对一综合诊所

Laravel5.1 模型--关联关系(复杂)

在 Laravel 中同步一对多关系

从一对多关系 laravel 中只查询一行