laravel 使用非自增主键异常的问题(UUID/GUID)
2019-07-30 16:43
781 查看
使用 laravel 操作 mysql 时,若表中使用非自增例如 UUID 或其他自定义字符串主键,需要修改一些属性,否则在查询时会出现一些数据异常。
1. keyType
- 该字段设定了主键的数据类型。
- 要将其改为
string
,默认为int
。 - 默认情况下,会因为’纯数字字符串‘主键强制转换为 int 类型导致数据错误,’其他字符串‘会变为’0‘。
2. incrementing
- 该字段设定 model 是否维护自增主键。
- 要将其改为
false
,默认为true
。 - 默认情况下,
create
一条新数据后,无论使用getKey
方法还是直接获取返回模型的 id 属性都无法得到正确的主键值。
附:常用的 model 属性
- hidden:转换为数组是隐藏的字段
- visible:转换为数组时展示的字段
hidden 和 visible 同时包含一个字段时,该字段会隐藏
- attributes:为字段设定默认值
格式: - dates:为作为时间处理的字段
- dateFormat:时间格式设定
- observables:自定义的观察者
- dispatchesEvents:事件触发的 map
6、7 在下一篇详述
相关文章推荐
- JPA Hibernate 使用UUID做为主键的问题
- Guid做主键使用数据集时出现System.OutOfMemoryException: 引发类型为“System.OutOfMemoryException”的异常
- 使用NEWSEQUENTIALID解决GUID聚集索引问题 SQLServer数据表主键的另一个方案
- 关于UUID和GUID,教你如何使用JDK自带的UUID生成主键。
- 拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED)) 使用Enterprise Library 3.0的磁盘缓存Isolated Storage 的问题
- 使用NEWSEQUENTIALID解决GUID聚集索引问题
- 第七篇 hibernate项目中使用JPA注解对ORACLE数据库表中主键生成用UUID
- 使用异常时需要注意的一些问题(转)
- 使用Guid做主键和int做主键性能比较
- 使用回收站主键名、索引名问题
- jsp中使用equals()判断字符串是否相等时出现的问题(.equals("1")出现的异常)
- Hiberator插件使用中ClassNotFound异常的两点问题
- 据库中使用自增量字段与Guid字段主键的性能对比
- UUID做主键,好还是不好?这是个问题。
- 【转载】UUID做主键,好还是不好?这是个问题。
- 解决使用Hibernate QBC复合查询含有联合主键映射关系实体的问题
- dom4j中使用SAXReader读取xml文件出现Premature end of file异常问题
- 使用gdb调试网络程序时,收到SIGPIPE信号异常退出问题
- JPA使用Hibernate实现,使用UUID.主键的生成策略.
- 使用GUID作为数据表主键的好处