【发布时间】:2015-10-04 16:12:46
【问题描述】:
我对 Laravel 比较陌生,过去 3 周的实习期间一直在研究它,但是现在我遇到了问题。
我有 3 个表:Users、Bids 和 Jobs。我希望用户能够对工作进行投标。
我的表的基本结构如下:
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_job_user:
bid_id | user_id | job_id | status
但是关系都是错误的,所以如果我想更新状态,同步方法等将无法正常工作。 感谢任何帮助,即使这只是我应该如何定义我的关系。
我无法将用户链接到表(job_user)中的作业,因为这已经在其他地方定义为多对多关系,因为经理(用户)可以创建许多作业,并且许多经理可以创建作业。
如果您需要更多信息,请询问。
【问题讨论】:
-
难道不是
User -< bid >- Job你说用户和工作(创建它们的用户)之间已经存在连接,所以唯一剩下的连接就是其他用户的出价? -
@AbstractChaos 只有某些用户可以创建job_user 表所代表的作业。我希望用户对工作进行投标,因此需要一个新表,不是吗?如果是你,你会如何创建表格?
-
@caselouisee 是的,你已经有一个 job_user 表来指示谁可以创建工作,所以你不需要重新定义它。对我来说,听起来你只需要一个投标表(id、user_id、job_id、status、proposal)来将用户(在这种情况下为投标人)连接到工作。
-
@AbstractChaos 如果我这样做,我将如何定义关系?即 public function user(){ return $this->belongsTo('App\User', 'bids'); } public function job(){ return $this->belongsTo('App\Job','bids'); }
标签: php laravel laravel-5 relationship pivot-table