违反完整性约束 laravel 9

Integrity constraint violation laravel 9

我正在使用 Laravel 9 来设置我的迁移,但我一直收到此错误 Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails 我已经查过了,我很困惑,因为我的 user_id 在 table urls 确实引用了用户的 id 列 table?

我还确保在我的 url.php 模型中保护了 user_id 的可填充项,我将其视为对类似问题的回答。

public function up()
    {
        Schema::create('urls', function (Blueprint $table) {
            $table->id();
            $table->text('full_url');
            $table->string('short_url')->unique();
            $table->foreignId('user_id')->constrained();
            $table->timestamps();
        });
    }
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

外键约束是用于确保数据完整性的机制之一。在这种情况下,这意味着您要插入的外键必须在关联的外键 table.

中具有对应关系

我举个例子。假设您有一个 posts table,它有一个 user_id 外键。 然后在您的 users table 中,您有以下 ID:1234。 如果您尝试 insert/update 一个 post,则所提供的 user_id 必须存在于 users table 之内。因此,这意味着如果您尝试插入一个 user_id7 的新 post,它将失败,因为 7 中没有 id users table.