我有将项目记录到项目经理的系统,
1个项目可以拥有多个项目经理
项目经理基本上只是系统用户,也许我有一个大脑放屁,但我正在努力找出正确的关系来获取我需要的数据,我想要的是得到数据库,项目细节以及每个项目经理的用户详细信息。
我设想它是一个1:n的关系,但我似乎无法获得我想要的数据,我使用雄辩来获取我的关系并加载数据,这是我的模型,
Project.php
public function projectmanager() {
return $this->belongsToMany('User');
}
user.php的
public function projectmanager() {
return $this->belongsTo('Project');
}
但这似乎没有意义,在我看来,感觉我需要我的项目表,用户表,然后是另一个表,它将存储和ID,用户ID和项目ID。
也许有人可以指出我正确的方向,因为我现在只是困惑自己
答案 0 :(得分:0)
如果&#34;一个项目可以有多个PM&#34; 和&#34;一个PM只能有一个项目&#34; - 您需要<强>一对多关系。
<强> Project.php 强>
public function managers()
{
return $this->hasMany('Manager');
}
<强> Manager.php 强>
public function project()
{
return $this->belongsTo('Project');
}
在这种情况下,您需要2个表:一个用于项目,一个用于PM。在PM表中应该有一个像project_id这样的字段,它是一个指向projects表中id字段的外键。
如果&#34;一个项目可以拥有多个PM&#34; 和&#34;一个PM可以拥有多个项目&#34; - 那么您需要<强大>多对多关系。
<强> Project.php 强>
public function managers()
{
return $this->belongsToMany('Manager');
}
<强> Manager.php 强>
public function projects()
{
return $this->belongsToMany('Project');
}
在这种情况下,您需要3个表:项目表,PM表(在这种情况下没有外键)和所谓的数据透视表,它从项目和PM表中保存相应的id字段。
有关您可以在Laravel 4.2 Relationships或Laravel 5.0 Relationships中学习的关系和模型的更多信息(取决于您使用的版本)。
要创建这些表格,您可以使用迁移。您可以在Laravel 4.2 Migrations或Laravel 5.0 Migrations中了解详情(具体取决于您使用的版本)。