细长的关系属于Too和hasMany


Eloquant relationships belognsTo and hasMany with same object

我有一个对象Tournament和两个关系:

  1. 锦标赛属于用户(创建它的管理员)
  2. 锦标赛有许多用户(竞争者)

我可以通过他的角色(管理员、竞争对手)区分一个和另一个

我可以这样做吗?还是应该感到矛盾???如果没有,我该怎么做???

您可以这样做-您只需要为Tournament对象定义2个关系,例如:

class Tournament extends Model {
  public function admin() {
    return $this->belongsTo(User::class, 'admin_id');
  }
  public function competitors() {
    return $this->belongsToMany(User::class);
  }
}

您的锦标赛管理员关系密钥现在将存储在比赛表的admin_id字段中,而赛事竞争对手映射将存储在user_turnance表格中-确保您有一个。

你可以在这里阅读更多关于多对多关系的操作:http://laravel.com/docs/5.1/eloquent-relationships#many-到许多