使用laravel 7作为uuid外键

使用laravel 7作为uuid外键,laravel,uuid,Laravel,Uuid,我有两个表,在这两个表中,我使用UUID生成一个id。 之后,我尝试在第二个表中使用一个id作为外来id。如图所示 迁移确实接受我正在做的事情,但是当我插入数据时,我得到了这个错误 Illuminate/Database/QueryException with message 'SQLSTATE[01000]: Warning: 1265 Data truncated for column 'userId' at row 1 她是我的第一张桌子: Schema::create(

我有两个表,在这两个表中,我使用UUID生成一个id。 之后,我尝试在第二个表中使用一个id作为外来id。如图所示 迁移确实接受我正在做的事情,但是当我插入数据时,我得到了这个错误

Illuminate/Database/QueryException with message 'SQLSTATE[01000]: Warning: 1265 Data truncated for column 'userId' at row 1 
她是我的第一张桌子:

       Schema::create('users', function (Blueprint $table) {
            $table->uuid('id')->primary();
            $table->string('userName')->unique();
            $table->string('email')->unique();
            $table->boolean('isVerified')->default(false);
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
具有外键的第二个表

Schema::create('tableTwo', function (Blueprint $table) {
            $table->uuid('id')->primary();
            $table->unsignedBigInteger('userId');
            $table->foreign('userId')
            ->references('id')
            ->on('users')
            ->onDelete('cascade');
            $table->timestamps();
        });

您正在将整型列映射到uuid列,不同类型的sql约束无法完成

您应该更改:

  $table->unsignedBigInteger('userId');


发生此错误时,您可以共享您尝试插入的数据吗?我按照您所说的做了,它接受插入数据,但这两个表仍然没有连接在一起。我可以将数据添加到表2中,而无需将用户添加到表1中!它应该说您没有删除具有此id的用户:$table->foreign('userId')->references('id')->on('users')->onDelete('cascade');您可以尝试:$table->uuid('userId')->nullable(false);不,我没有删除('users')->onDelete('cascade')上的$table->foreign('userId')->引用('id')->;为什么我要把它拿走?我只是想确定一下。。。这种关系应该建立在正确的基础上。。你重新安排了你的迁移吗?
 $table->uuid('userId')->nullable(false);