Laravel 11.33.2中UUID作为主键访问时被截断的问题
问题原因及解决方案
这个问题的核心是Laravel模型默认将主键识别为整数类型,即便你在数据库迁移里把id设为UUID字符串,模型依然会尝试把它转换成整数。UUID3246c4a7-9757-11e8-80d0-00155dbf5a2a在转整数时,只会读取到第一个非数字字符(即c)之前的部分,因此被截断为3246。
解决方法很简单,只需在Product模型中添加两个属性:
class Product extends Model { // 指定主键类型为字符串 protected $keyType = 'string'; // 关闭主键自增(UUID并非自增字段) public $incrementing = false; }
添加完成后,再次访问Product::first()->id或调用toArray(),就能获取完整的UUID值了。
内容的提问来源于stack exchange,提问作者Александр Инженер
相关产品推荐
相关产品推荐

