laravel 使用非自增主键异常的问题(UUID/GUID)

本文详细解析了在使用Laravel框架操作MySQL数据库时,如何正确配置非自增主键如UUID,避免数据异常。重点介绍了keyType和incrementing属性的调整方法,以及这些设置对数据操作的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用 laravel 操作 mysql 时,若表中使用非自增例如 UUID 或其他自定义字符串主键,需要修改一些属性,否则在查询时会出现一些数据异常。

1. keyType
  • 该字段设定了主键的数据类型。
  • 要将其改为 string,默认为 int
  • 默认情况下,会因为’纯数字字符串‘主键强制转换为 int 类型导致数据错误,’其他字符串‘会变为’0‘。
2. incrementing
  • 该字段设定 model 是否维护自增主键。
  • 要将其改为 false,默认为 true
  • 默认情况下,create 一条新数据后,无论使用 getKey 方法还是直接获取返回模型的 id 属性都无法得到正确的主键值。
附:常用的 model 属性
  1. hidden:转换为数组是隐藏的字段
  2. visible:转换为数组时展示的字段

hidden 和 visible 同时包含一个字段时,该字段会隐藏

  1. attributes:为字段设定默认值
    格式:
  2. dates:为作为时间处理的字段
  3. dateFormat:时间格式设定
  4. observables:自定义的观察者
  5. dispatchesEvents:事件触发的 map

6、7 在下一篇详述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值