Php 变形字段id大于1的Laravel变形表

Php 变形字段id大于1的Laravel变形表,php,laravel,uuid,Php,Laravel,Uuid,我有一个具有以下结构的个人访问令牌表: public function up() { Schema::create('personal_access_tokens', function (Blueprint $table) { $table->bigIncrements('id'); $table->morphs('tokenable'); $table->string('name'); $table-&g

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

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。现在,我在创建personal_access_令牌时遇到以下错误,原因是可令牌的_id无法存储uuid(我想)


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

因为列的数据类型必须匹配,并且
用户
模型的主键具有
uuid
格式,所以
morps()
方法在这种情况下不适用于你。您可以手动创建列,正如您在注释中所指出的,但是(自laravel版本5.8以来,
uuidMorphs()
方法也可用

可用列类型


添加
taggable_id
UNSIGNED BIGINT和
taggable_type
VARCHAR等效列


添加
taggable_id
CHAR(36)和
taggable_type
VARCHAR(255)UUID等效列



我刚找到
$table->uuidMorphs('taggable')添加
taggable_id
CHAR(36)和
taggable_type
VARCHAR(255)UUID等效列。也许这正是你想要的,而我想要的!我已经手动添加了变形字段,但这将在将来派上用场。做一个答案,这样我就可以标记正确。
"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))",
$table->morphs('taggable');
$table->uuidMorphs('taggable');