Laravel 5.2:为什么我的字符串主键转换为 0?

Linda Hamilton
发布: 2024-11-26 01:09:10
原创
111 人浏览过

Laravel 5.2: Why is my String Primary Key Converting to 0?

Laravel 5.2:自定义主键转换问题

在 Laravel 5.2 的 Eloquent ORM 中使用字符串作为自定义主键时,您可能会遇到这样的问题:从 key 中检索时键值会转换为 0

说明:

Laravel 自动转换属性值以匹配数据库列类型。默认情况下,自动递增主键被假定为整数。但是,在这种情况下,您使用字符串作为主键,这会导致值转换错误。

解决方案:

要解决此问题,您需要显式指定主键是一个字符串,并且它不应自动递增。为此,请将以下代码添加到您的模型中:

protected $primaryKey = 'your_key_name';
public $incrementing = false;
登录后复制

确保将 'your_key_name' 替换为主键列的实际名称。

进一步说明:

在 Laravel 6.0 及更高版本中,还需要设置 $keyType 属性to 'string':

protected $keyType = 'string';
登录后复制

这明确指定主键是字符串并防止任何潜在的类型转换。

通过实施此解决方案,您将能够使用字符串作为在 Laravel Eloquent 模型中自定义主键,而不会遇到转换问题。

以上是Laravel 5.2:为什么我的字符串主键转换为 0?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板