Eloquant的关系belognsTo和hasMany有相同的对象

时间:2015-12-12 19:34:05

标签: php laravel laravel-5 eloquent

我有一个对象锦标赛和两个关系:

  1. 锦标赛属于用户(创建它的管理员)
  2. 锦标赛有很多用户(竞争对手)
  3. 我可以通过他的角色(管理员,竞争对手)区别于其他人

    我可以这样做,还是应该让我发生冲突? 如果没有,我该怎么办?

1 个答案:

答案 0 :(得分:0)

你可以这样做 - 你只需要为锦标赛对象定义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 字段中,而锦标赛竞争对手< / strong>映射将存储在 user_tournament 表中 - 确保您有一个。

您可以在此处详细了解如何操作多对多关系:http://laravel.com/docs/5.1/eloquent-relationships#many-to-many