Laravel 5.1 -数据透视表之间的3个表


Laravel 5.1 - pivot table between 3 tables

我对Laravel比较陌生,在过去的3周实习中一直在使用它,但是现在我遇到了一个问题。

我有3个表:用户,投标和工作。我希望一个用户能够在工作上出价。

表的基本结构如下:

Users:
id | name | email | description
Jobs:
id | title | description
Bids:
id | proposal

需要满足以下条件:

  1. 用户可以投标多个作业,但是每个作业只能投标一次。
  2. 一个作业可以有来自多个用户的多个投标。
  3. 每个投标只链接到一个用户和一个作业。

的例子:用户1对工作1提出了300英镑的建议。这将创建一个id为1的出价和提议300英镑。数据透视表将包含用户id(1)、作业id(1)和投标id(1),以及默认设置为Pending的状态。

我还希望链接所有3的表有一个状态。我创建了一个,如下所示:

bid_job_user:

bid_id | user_id | job_id | status

但是关系都是错误的,所以如果我想更新状态,同步方法等将无法正常工作。任何帮助我都很感激,即使它只是我应该如何定义我的人际关系。

我不能将用户链接到表(job_user)中的作业,因为这已经在其他地方定义为多对多关系,因为管理器(用户)可以创建许多作业,而作业可以由许多管理器创建。

如果你需要更多的信息,请问。

要创建投标表(根据注释),您可以将其视为交叉实体。

<!-- User.php -->
//should recognize user_id,job_id by itself
public function bidsMade() {
  return $this->belongsToMany('App'Job','bids')->withPivot('status','proposal');
}
<!-- Job.php -->
//should recognize user_id,job_id by itself
public function bidsRecieved() {
  return $this->belongsToMany('App'User','bids')->withPivot('status','proposal');
}