Laravel:当我的外键在数组中时,如何在模型中添加关系?
Posted
技术标签:
【中文标题】Laravel:当我的外键在数组中时,如何在模型中添加关系?【英文标题】:Laravel: How to add Relationship in Model when my Foreign keys are in array? 【发布时间】:2019-02-26 12:34:09 【问题描述】:我有一个表,我需要将 id 保存在数组中,您可以在其中查看项目 events_who 是一个外键。我可以在模型中创建关系以从外键获取数据的任何解决方案?我试过belongsToMany,但它不起作用。 :(
有什么建议吗?
【问题讨论】:
Laravel. How to get relationships where foreign key is an array的可能重复 这是重复的。请始终在谷歌上搜索您的问题/问题/目标的许多清晰、简洁和特定的版本/措辞,带和不带您的特定字符串/名称,并阅读许多答案。将您发现的相关关键字添加到搜索中。如果您没有找到答案,请发布,使用一个变体搜索您的标题和关键字作为您的标签。请参阅向下投票箭头鼠标悬停文本。如果您确实有要发布的非重复代码问题,请阅读并在minimal reproducible example 上采取行动。在这里你可以用谷歌搜索你的标题。而“它不起作用”什么也没告诉我们。 请use text, not images/links, for text (including code, tables & ERDs)。使用图片只是为了方便补充文本和/或无法在文本中给出的内容。 【参考方案1】:假设我们有 2 个模型:Event
和 Person
而一个Person
可以参与多个Event
基于上述关系,您需要创建一个名为event_person
的数据透视表,并在两个模型中定义两个belongsToMany()
关系:
在Person
模型中,关系将如下所示:
public function events()
return $this->belongsToMany(Event::class, 'event_person');
【讨论】:
【参考方案2】:Laravel / mysql(关系数据库)实际上并不是这样工作的。在这种情况下,您应该查看Many to Many Relationships。
示例表架构/布局:
users
|id|name|password|
events
|id|title|body|
event_user (pivot table)
|event_id|user_id|
通常列中不会有数组,您应该使用表来代替。此外,通常外键是表名(单数)后跟_id。
【讨论】:
以上是关于Laravel:当我的外键在数组中时,如何在模型中添加关系?的主要内容,如果未能解决你的问题,请参考以下文章
java - 如何根据Java Servlet中的外键在一列中显示多个值?