如何在Laravel中定义和使用外键作为主键



我有一个Users表,可以存储8种不同类型的用户。根据用户类型的不同,我还有一些其他表,其中包含特定的数据集。因此,我希望将Users表中的ID同时用作这些表的外键和主键。但我是Laravel的新手,我不知道如何做到这一点以符合惯例,如果不可能的话,在定义我的模型和一对一关系时,我也不知道如何做。有人能帮我吗?谢谢

编辑:对不起,我觉得我的解释不够清楚。假设我有4个表:用户、用户类型、客户组织、合作伙伴和客户。我想使用ID,即用户的PK,作为表customer_organization、合作伙伴和客户的外键和主键,这些表具有不同的信息,因为它们在我的应用程序中是不同类型的用户,但都是根据用户表登录的。我不在乎user_types表。我想我知道如何处理它。

您没有向我们提供太多关于表结构的信息,因此假设您在users表和user_types表之间有一个简单的one-to-one关系,下面将创建所需的关系。

在您的user_types表迁移中

$table->foreignId('user_id')->constrained();

以上操作将把您的外键添加到表中,并创建回users表的关系(这是使用约定"神奇地"完成的,因此命名很重要(。

然后在eloquent模型中,添加模型之间的关系:

User.php

public function type()
{
return $this->hasOne(UserType::class);
}

UserType.php

public function user()
{
return $this->belongsTo(User::class);
}

相关内容

  • 没有找到相关文章

最新更新