首页 > 解决方案 > Laravel eloquent 模型使用自定义表和主键的主键值不正确

问题描述

我正在将应用程序从直接 PHP 迁移到使用 Laravel。当前用户表是使用类型Person的主键调用person_idunsigned bigint(20)

我已使用以下内容更新了我的 App\User 模型:

protected $table = 'Person';
protected $primaryKey = 'person_id';

每当我提出请求和检查Auth->user()时,person_id总是错误的值。我预期的 id 是4294967410,但它正在返回2147483647。用户的所有其他属性都是正确的(电子邮件、姓名等)。

我很困惑为什么会这样。我正在使用全新安装的 laravel。

标签: laraveleloquent

解决方案


如果不重复PHP 中 int 的最大大小是多少?

你得到PHP_INT_MAX的是 2147483647 在 32 位机器上。

例如,在我的 Mac 上,int 限制为:

Psy Shell v0.9.4 (PHP 7.1.14 — cli) by Justin Hileman
>>> echo PHP_INT_MAX
9223372036854775807⏎

解决方案是使用 64 位机器和 64 位 PHP 构建。


推荐阅读