【问题标题】:Understanding Many to Many relationship in Laravel了解 Laravel 中的多对多关系
【发布时间】:2018-07-16 03:06:55
【问题描述】:

我正在关注 laravel 的官方文档。 我正在尝试在usersroles 之间建立关系。 所以,表格是: users | roles | role_user

role_user 是我的数据透视表。

现在在User 模型中我定义了如下关系:

public function roles() {
    return $this->belongsToMany('App\Role');
}

所以这里在返回语句块中显示belongsToMany('App\Role')。但是一个用户只能有一个角色对吗?管理员或订户等 或者在许多角色与许多用户相关联的上下文中称为多对多?

【问题讨论】:

  • 由于您使用的是多对多关系,因此一个用户可以拥有多个角色。如果您希望用户只有一个角色,请改用一对多关系。
  • @AlexeyMezenin 因此,如果我的应用程序只需要一个用户角色,那么我可以在这种情况下使用一对一吗?
  • 不是一对一,而是一对多。用户belongsTo()角色和角色hasMany()用户。
  • 他说你可以使用一对多!但是你不能使用一对一!
  • 谢谢先生现在知道了:)

标签: php database laravel


【解决方案1】:

用于用户的多对多关系可以有多个角色。正如您所说,您的应用程序只需要一个用户角色,然后使用一对多。但在这种情况下,您不能使用一对一。

所以你们的关系是这样的:

User belongsTo() 角色和角色 hasMany() 用户。

在用户模型中:

public function roles() {
    return $this->belongsTo('App\Role');
}

在角色模型中:

public function user() {
    return $this->hasMany('App\User');
}

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 2018-06-15
    • 2018-01-22
    • 2016-02-26
    • 2016-01-04
    • 2018-07-04
    相关资源
    最近更新 更多