Laravel关系澄清

时间:2019-04-15 13:43:59

标签: php laravel

我已经进行了研究并阅读了laravel文档,但是我真的想使这个主题正确无误,所以我非常感谢初学者友好的解释。

我有4张这样的桌子:

*USERS*
-user_id
-username
-role

*PROJECTS*
-proj_id
-proj_title
-client
-created_by

*TASKS*
-task_id
-proj_id
-status
-created_by

*CLIENTS*
-client_id
-client_name

我的意图是在这些表之间创建关系,例如,当用户提交项目时,获取其ID,并从其ID存储区中将其名称存储在“ created_by”中,或者,当用户提交任务时,能够通过ID获得项目名称。

让我感到困惑的是,如果我需要在两个表中都创建外部约束,那么从USERS到PROJECTS,反之亦然,或者只在其中之一中创建。

预先感谢

1 个答案:

答案 0 :(得分:0)

您不需要在表上创建约束,而是在类上创建约束。口才和学说可以满足您的所有需求。

我认为您的问题是是否需要在所有模型中创建函数$this->belongsTo('Class')$this->hasMany('Class', 'class_id')。答案并不总是如此。

您必须问自己是否需要使用这种关系:例如,用户将需要查看他创建的所有项目(hasMany),而我们需要查看谁创建了这些项目(belongsTo)。 在其他情况下,我们不需要某些关系(例如,如果我们不希望评论出现在用户的个人资料中,但是我们需要查看是谁在相关文章上写的),然后您不需要不写函数。