我已经进行了研究并阅读了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,反之亦然,或者只在其中之一中创建。
预先感谢
答案 0 :(得分:0)
您不需要在表上创建约束,而是在类上创建约束。口才和学说可以满足您的所有需求。
我认为您的问题是是否需要在所有模型中创建函数$this->belongsTo('Class')
和$this->hasMany('Class', 'class_id')
。答案并不总是如此。
您必须问自己是否需要使用这种关系:例如,用户将需要查看他创建的所有项目(hasMany),而我们需要查看谁创建了这些项目(belongsTo)。 在其他情况下,我们不需要某些关系(例如,如果我们不希望评论出现在用户的个人资料中,但是我们需要查看是谁在相关文章上写的),然后您不需要不写函数。