📜  Laravel 在迁移中创建外键列 (1)

📅  最后修改于: 2023-12-03 14:43:47.725000             🧑  作者: Mango

Laravel 中的迁移创建外键列

在 Laravel 中,迁移(Migration)是一种用于管理数据库模式变更的工具。它允许开发者通过编写简单的 PHP 代码来定义和修改数据库结构。在进行迁移时,我们有时需要创建外键列来建立数据库表之间的关联。

创建外键列的步骤
  1. 首先,我们需要创建一个迁移文件。可以使用以下 Artisan 命令来生成一个新的迁移文件:
php artisan make:migration create_foreign_key_column
  1. 打开生成的迁移文件,位于 database/migrations 目录下。在 up 方法中,可以使用 Schema 简写类提供的 table 方法来创建新的数据表,并在表定义中使用 foreign 方法添加外键列。下面是一个示例:
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateForeignKeyColumn extends Migration
{
    public function up()
    {
        Schema::table('your_table_name', function (Blueprint $table) {
            $table->unsignedBigInteger('foreign_key_column')->nullable();
            $table->foreign('foreign_key_column')->references('id')->on('related_table_name');
        });
    }

    // ...

}

在上面的示例中,your_table_name 是你要添加外键列的表名,foreign_key_column 是外键列的名称,在这个列上我们使用了 unsignedBigInteger 类型。related_table_name 表示与当前表关联的其他表名。

注意:在 Laravel 5.8 及之前的版本中,需要手动引入 Doctrine\DBAL\Schema\ForeignKeyConstraint 类来使用 references() 方法。在 Laravel 6 及更高版本中,可以直接使用 references() 方法。

nullable() 方法可选,它表示外键列是否允许为空。你可以根据需求自行决定。

  1. 保存修改后的迁移文件,并使用以下 Artisan 命令来运行迁移:
php artisan migrate

这将在数据库中创建新的外键列。

其他信息
  • 如果需要在迁移中删除外键列,可以使用 dropForeign() 方法。例如:
$table->dropForeign(['foreign_key_column']);
  • 外键列的命名约定是 table_column_foreign,例如 users_id_foreign

以上就是在 Laravel 中创建外键列的简要介绍。希望对你有所帮助!