繁体   English   中英

变体字段 id 大小大于 1 的 Laravel 变体表

[英]Laravel morph table with morph field id size larger than one

我有一个具有以下结构的个人访问令牌表:

public function up()
{
    Schema::create('personal_access_tokens', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->morphs('tokenable');
        $table->string('name');
        $table->string('token', 64)->unique();
        $table->text('abilities')->nullable();
        $table->timestamp('last_used_at')->nullable();
        $table->timestamps();
    });
}

现在,当我有一个自动递增的整数作为我的用户 ID 将在此表中存储访问令牌时,这工作正常,但我已将我的用户 ID 更改为 uuid。 现在,由于tokenable_id无法存储 uuid(我认为),在创建personal_access_tokens时出现以下错误

"SQLSTATE[01000]: Warning: 1265 Data truncated for column 'tokenable_id' at row 1 
(SQL: insert into `personal_access_tokens` (`name`, `token`, `abilities`, 
    `tokenable_id`, `tokenable_type`, `updated_at`, `created_at`) values (my-token, 
     ef16e51c374d0a2dddf029b29f59ae62eb518c64f2f19945f7adc2cd67548ca7, [\"*\"], 
     96481014-efb0-42ce-9037-1f256c074976, App\\User, 
     2020-05-15 21:08:39, 2020-05-15 21:08:39))",

知道如何更改 tokenable_id 字段以接受 uuid 吗?

我有一个具有以下结构的个人访问令牌表:

public function up()
{
    Schema::create('personal_access_tokens', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->morphs('tokenable');
        $table->string('name');
        $table->string('token', 64)->unique();
        $table->text('abilities')->nullable();
        $table->timestamp('last_used_at')->nullable();
        $table->timestamps();
    });
}

现在,当我有一个自动递增的 integer 作为我的用户 ID 并将访问令牌存储在此表中时,这工作正常,但我已将我的用户 ID 更改为 uuids。 现在,由于tokenable_id无法存储uuid(我认为),在创建personal_access_tokens时出现以下错误

"SQLSTATE[01000]: Warning: 1265 Data truncated for column 'tokenable_id' at row 1 
(SQL: insert into `personal_access_tokens` (`name`, `token`, `abilities`, 
    `tokenable_id`, `tokenable_type`, `updated_at`, `created_at`) values (my-token, 
     ef16e51c374d0a2dddf029b29f59ae62eb518c64f2f19945f7adc2cd67548ca7, [\"*\"], 
     96481014-efb0-42ce-9037-1f256c074976, App\\User, 
     2020-05-15 21:08:39, 2020-05-15 21:08:39))",

知道如何更改 tokenable_id 字段以接受 uuids 吗?

上面的答案是正确答案,我想补充一下,你也可以使用

            $table->ulidMorphs('taggable');

对于那些使用 ulid id 而不是 uuid 的人,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM