我对 Laravel 比较陌生,过去 3 周我一直在实习中研究它,但现在我遇到了问题。
我有 3 个表:用户、出价和作业。我希望用户能够对工作进行出价。
我的表格的基本结构如下:
Users:
id | name | email | description
Jobs:
id | title | description
Bids:
id | proposal
需要满足以下条件:
- 用户可以对多个职位出价,但每个职位只能出价一次。
- 一项任务可以有来自多个用户的多个出价。
- 每个出价仅与一名用户和一项职位相关联。
示例: 用户 1 对作业 1 提出 300 英镑的提案。这将创建一个 ID 为 1 且提案为 300 英镑的出价。数据透视表将包含用户 ID(1)、作业 ID(1) 和出价 ID(1) 以及默认设置为“待处理”的状态。
我还希望链接所有 3 个表的表具有状态。我创建了一个如下:
出价作业用户:
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');
}
关于php - Laravel 5.1 - 3 个表之间的数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31433482/