laravel - Laravel Sanctum 创建令牌时出错
问题描述
我正在尝试设置Sanctum
登录到我的Laravel
api。我正在关注文档(也在线交叉引用了其他文章),但是当我尝试使用以下命令获取令牌时出现错误createToken
:
Illuminate\Database\QueryException: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'd0970066-b343-419a-a348-9d43df3c13b4' for column
mydb
。personal_access_tokens
.tokenable_id
- 在第 1 行 (SQL: 插入personal_access_tokens
(name
,token
,abilities
,tokenable_id
,tokenable_type
,updated_at
,created_at
) 值 (mydevice, 2fde2030c7dcede42cbf76124b77fe0edbbff75fe01ae57ef25a3f582123ee93, ["*"], d0970066-b343-419a-a348-9d43df3c10b2, 20700066-b343-419a-a348-9d43df3c13b4, App :19:17, 2021-07-12 13:19:17)) 在文件 D:\dev\...\vendor\laravel\framework\src\Illuminate\Database\Connection.php 第 692 行
看来该tokenable_id
列期望的值与 Sanctum 给出的值不同。数据库想要一个bigint
但正在获得一个string
. 为什么会这样?
这是迁移文件:
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();
});
}
桌子:
调用此行时发生错误。
return $user->createToken($request->device_name)->plainTextToken;
完整代码在这里。
解决方案
推荐阅读
- c# - 在 Default.aspx WebForms 中为特定页面显示不同的图像
- python - XGBoost 预测不同操作系统之间的差异
- django - 在 django 中创建对象时使用 upload_to 函数
- node.js - 如何在nods js中将html字符串转换为word doc
- javascript - React Native 中的缩放视图
- javascript - 使用 Selenium 控制使用 javascript 和 Selenium 创建的动态表
- c - sscanf 和 printf 覆盖值
- assembly - 在汇编中复制字符串
- r - 进行聚类分析后如何分离数据?
- cygwin - Cygwin下的文件夹代表什么?