数值超出范围,但我创建了BigInt

时间:2019-07-04 13:47:00

标签: php sql laravel

我有一张表,其中一列是request_id,它是在这样的迁移中定义的:

$table->bigInteger('request_id')->index()->unsigned()->nullable();

当我在表结构上查看phpmyadmin时,它说

bigint(20)      UNSIGNED

我正在向我的api请求,并通过以下值发送:1562247865319

$requestLog = new RequestLog();
$requestLog->request_id = 1562247865319;
$requestLog->save();

此代码出错,并发回数值超出范围:1264超出范围

真正奇怪的是,当我使用phpmyadmin时,我可以将该列的值手动设置为比1562247865319大得多的值,但是当我通过laravel模型执行此操作时,它并不喜欢它。

编辑

错误消息是

SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'request_id' at row 1 (SQL: insert into `request_logs` (`ip`, `submitted_user_name`, `url`, `full_url`, `method`, `request_id`, `request_data`, `api_user_id`, `updated_at`, `created_at`) values (..., ..., ..., http://..../api/..., POST, 1562247865319, {"request_id":"1562248616206"}, 2, 2019-07-04 14:57:00, 2019-07-04 14:57:00))

1 个答案:

答案 0 :(得分:0)

我认为这个问题与this相同。

尝试将所有未签名的整数更改为已签名。