Laravel与一对一关系的一对多关系

时间:2018-04-17 07:46:18

标签: php mysql database laravel eloquent

我可能会犯这个错误,但我需要一个模型来拥有一对多和一对一的关系。

我有以下表格:

  • bots
  • bot_settings
  • message
  • section

我有以下关系:

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

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

  • ArMessageBotSettings
  • 也有一对一的关系

我已经让他们属于一个部分,我不知道我怎么也可以将他们链接到BotSetttings我想我可能需要改变我的关系,但不知道如何。

我阅读了文档并尝试了一切,不知道现在要尝试什么。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

您可以尝试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...
        );

答案 1 :(得分:0)

您可以将此类方法用于一对一或一对多

public function yourmethod(){
    return Modalnamewhereyouwanttoretrive::where('yourcolmn',$this->foreign_key)->get(); 
}