首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel的模型关系

Laravel的模型关系
EN

Stack Overflow用户
提问于 2016-04-16 14:31:00
回答 1查看 197关注 0票数 1

我有两个控制器和模型:

  1. 用户控制器:(模型关系:$this->hasMany(Hero::Class);)
  2. 英雄控制:每个英雄都有他自己的属性,比如名字,力量和生活。模型关系:($this->belongsTo(User::class);)

每个用户都可以拥有多个英雄。

这意味着USER ID: 1可能有三个英雄:HERO ID 5, 20, 26.

我的问题是:如何定义这样的关系,让laravel知道如何处理我的user_heroes表?下面的图片描述了我所说的这种关系:

如何在我的拉拉API中建立这样的关系?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-16 15:41:50

如果一个用户可以拥有许多英雄,而一个英雄也可以属于许多用户,那么它就是一个多到多的关系。在Laravel中,多对多关系的反比也是多对多关系,它们都是由belongsToMany()描述的。

https://laravel.com/docs/5.2/eloquent-relationships#many-to-many

所以在您的用户模型中:

代码语言:javascript
复制
public function heros() {
    return $this->belongsToMany(Hero::class);
}

在你的英雄模型中:

代码语言:javascript
复制
public function users() {
    return $this->belongsToMany(User::class);
}

Laravel将假定连接表名为hero_user,两个模型名称,单数,按字母顺序连接。如果您想像在映像中一样使用user_heroes,则需要指定它:

代码语言:javascript
复制
return $this->belongsToMany(Hero::class, 'user_heroes');

(在两种模型方法中)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36665432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档