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
(一对多)
所有这一切都按预期工作,我遇到了问题:
ArMessage
与 BotSettings
也有一对一的关系
我已经让它们属于一个部分,我不确定如何将它们链接到一个 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 关联关系,一对一和一对多