MySQL Laravel使外键唯一

时间:2016-03-16 15:40:43

标签: mysql laravel foreign-keys foreign-key-relationship

在我使用Laravel / Mysql构建的应用程序中,我有两个用户表。

当我用户注册表格时,用户"和" UserInfo "得到了。

UserInfo FK 指向用户表中的 PK

现在我的 UserInfo 表中有一列设置为 unique 我这样做是为了确保用户只能在UserInfo表中有一条记录。

但是有可能让FK独一无二吗?我需要在表格之间进行一对一的设计。

1 个答案:

答案 0 :(得分:1)

您可以使整数本身唯一。 foreign方法仅用于链接表A和表B之间的数据。

$table->integer('user_id')->unsigned()->unique();
$table->foreign('user_id')->references('id')->on('user_infos');

您可能正在寻找的是Eloquent:关系,必须添加到您的模型中。

您可以为UserInfo模型添加此内容:

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

这适用于您的用户模型:

    public function user_info()
{
    return $this->hasOne(User::class);
}

更多信息: https://laravel.com/docs/5.2/eloquent-relationships#defining-relationships