Laravel Relationships and Pivot

时间:2017-12-02 12:34:29

标签: laravel

我有一个用户表 ID ROLE_ID "其他标准的auth东西"

我还有一个角色表 ID 作用

我不想更改用户表,因为它目前正在使用laravel 5.4提供的所有auth内容但是

我有一个角色的用户。让我们说教练和球员是两种类型的角色,我现在需要让教练添加球员和球员,让自己加入教练并使他们相关。

是否可以将用户模型角色类型教练和角色类型播放器关联到coaches_players这样的单独表中,而无需为Player和Coach创建新模型?如果是这样,有人可以指出我正确的方向。我知道如果我从头开始,我会通过belongsToMany等相关的播放器和教练,但我的系统中的所有内容都使用user_id,我不想更改所有的Auth功能等。

  1. 有没有办法创建那些扩展用户并通过这些模型创建关系的Player和Coach模型?
  2. 有没有办法通过数据透视表coaches_players?
  3. 关联User表中的2列

    只是寻找一些指导,如果你把它们放在头顶,可能会有一些链接。

1 个答案:

答案 0 :(得分:0)

当然,你可以这样做。只需创建coaches_players表并在User模型中定义新关系:

public function players()
{
    $this->belongsToMany(User::class, 'coaches_players', 'coach_id', 'player_id');
}

public function coaches()
{
    $this->belongsToMany(User::class, 'coaches_players', 'player_id', 'coach_id');
}