📜  laravel 8 外键迁移 - PHP (1)

📅  最后修改于: 2023-12-03 15:32:32.826000             🧑  作者: Mango

Laravel 8外键迁移 - PHP

在Laravel 8中,外键约束(Foreign Key Constraints)与表约束(Table Constraints)是默认启用的。让我们了解如何在Laravel 8中使用外键迁移。

创建外键

我们可以通过在迁移文件的 up 方法中使用 foreign 方法来创建外键。参数是目标表名和目标列名。我们还可以指定 onDeleteonUpdate 来处理删除和更新外键时发生的事情。

Schema::table('users', function (Blueprint $table) {
    $table->unsignedBigInteger('account_id');
    $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade');
});

在上面的示例中,我们创建一个 account_id 列并将其作为外键指向 accounts 表中的 id 列。此外,在我们删除 users 表中的行时,如果该行有一个与之相关的 account_id,我们将删除相关的 accounts 行。相反,我们也可以使用 onUpdate 处理更新外键时的情况。

Schema::table('users', function (Blueprint $table) {
    $table->unsignedBigInteger('account_id');
    $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade')->onUpdate('cascade');
});
删除外键

我们可以通过在迁移文件的 down 方法中使用 dropForeign 方法来删除外键。

Schema::table('users', function (Blueprint $table) {
    $table->dropForeign(['account_id']);
});

在上述示例中,我们删除 users 表中的 account_id 外键。

安装和运行迁移

安装迁移非常简单。我们只需要使用 php artisan make:migration 命令并指定迁移文件名即可创建迁移文件。

php artisan make:migration add_account_id_foreign_key_to_users

然后,我们就可以在迁移文件中编写迁移逻辑。最后,可以使用 php artisan migrate 命令来运行迁移。

总结:

在Laravel 8中,使用外键约束可以避免意外的数据修改和删除,同时能够有效地保护数据完整性。在本文中,我们展示了在Laravel 8中使用外键迁移的简单示例。虽然本文只能涵盖一些基础知识,但是希望它可以为你提供一些参考。