首页 > 解决方案 > 在 laravel 中将电子邮件设置为主键

问题描述

我想在 laravel 迁移中创建一个电子邮件作为主键而不是 id,我试过了。

public function up()
{
  Schema::create('users', function (Blueprint $table) {
      $table->increments('id');
      $table->primary('email');
  });
}

我有一个如下错误:

SQLSTATE [42703]:未定义列:7 错误:关系“用户”的列“电子邮件”不存在(SQL:更改表“用户”添加主键(“电子邮件”))

标签: phplaravelmigrationlaravel-8

解决方案


电子邮件通常不用作主键,这样做是一个坏习惯。如果你仍然想这样做,你可以这样做:

{
 Schema::create('users', function (Blueprint $table) {
     $table->increments('id');
     $table->string('email')->primary();
  });
 }

请注意,不推荐!


推荐阅读