【发布时间】:2016-08-08 12:08:31
【问题描述】:
我有 2 个控制器和模型:
用户控制器:(模型关系:
$this->hasMany(Hero::Class);)英雄控制器:每个英雄都有自己的属性,例如名字、力量和生命。 模型关系:(
$this->belongsTo(User::class);)
每个用户可以拥有多个英雄。
这意味着USER ID: 1可能有3个英雄:HERO ID 5, 20, 26.。
我的问题:如何定义这样的关系并让 laravel 知道如何处理我的 user_heroes 表?
我所说的关系如下图所示:
如何在我的 laravel API 中设置这种关系?
【问题讨论】:
-
是的,我是这个意思。
-
在我看来,您想要的是一对多关系,但您的数据库并未反映这种关系。在多对多关系的情况下,您需要一个数据透视表。如果你想建立一对多的关系,你需要在你的
hero表中有一个user_id字段,你不需要一个数据透视表。这就是 laravel 期望你为这种关系设置数据库的方式。 -
嗯.. 想想看,一个用户可以拥有多个英雄,但我仍然必须使用“多对多”关系逻辑。我添加了一张图片来更能描述我想要达到的目标。你能确认尽管一个用户可以有多个英雄(这意味着一对多)我仍然必须在 laravel 中使用多对多关系吗?
-
多个用户可以拥有同一个英雄吗?例如,用户 id 2 也可以拥有 hero id 5 吗?
-
是的,他也可以拥有英雄 5。@Don'tPanic
标签: laravel