繁体   English   中英

与Laravel 5.3中的同一张表的两个关系

[英]Two relationships to the same table in Laravel 5.3

我使用Laravel构建了一个对我来说是新的应用程序,并且陷入了模型定义的困境。
我有两个表USERS和ACTIONS。

1)用户可以创建一个“动作”或多个动作。
2)用户也可以是另一个用户创建的动作的成员。

因此,如果我没记错,则第一个关系是一对多关系(一个用户可以创建许多动作,一个动作只能由一个用户创建),第二个关系是多对多的关系(许多用户可以成为成员)许多动作中)

我不知道Laravel是否允许这样做,或者我可能错过了一些东西

感谢大家

同一张表之间可能有多个关系。

以下关系定义应为您工作:

class User extends Model {
  public function actions_created() {
    return $this->hasMany(Action::class, 'creator_id');
  }

  public function actions() {
    return $this->belongsToMany(Action::class);
  }
}

class Action extends Model {
  public function creator() {
    return $this->belongsTo(User::class);
  }

  public function users() {
    return $this->belongsToMany(User::class);
  }
}

确保已准备好action_user表,以存储用户和操作之间的多对多关系。 它应该具有3列:id,user_id和action_id。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM