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”中,或者,当用户提交任务时,能够获得PROJECT通过其ID命名。


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


肥皂起泡泡
浏览 151回答 1
1回答

慕后森

您不需要在表上创建约束,而需要在类上创建约束。口才和学说可以满足您的所有需求。我认为您的问题是,是否需要在所有模型中创建功能$this->belongsTo('Class')和创建$this->hasMany('Class', 'class_id')模型。答案并非总是如此。您必须问自己是否需要使用这种关系:例如,用户需要查看他创建的所有项目(hasMany),而我们需要查看谁创建了项目(belongsTo)。在其他情况下,我们不需要某些关系(例如,如果我们不希望评论出现在用户的个人资料中,但是我们需要查看是谁在相关文章上写的),然后您不需要不写函数。
打开App,查看更多内容
随时随地看视频慕课网APP