首页  >  文章  >  后端开发  >  如何处理 Laravel 5.2 中的自定义字符串主键转换问题

如何处理 Laravel 5.2 中的自定义字符串主键转换问题

Linda Hamilton
Linda Hamilton原创
2024-10-19 16:53:30940浏览

How to Handle Custom String Primary Key Conversion Issue in Laravel 5.2

Laravel 5.2 - 自定义主键作为字符串:解决 '0' 转换

使用字符串作为 Eloquent 表的主键可能会导致意外的转换问题。本文解决了获取主键时遇到值“0”的问题。

问题陈述:

当尝试使用电子邮件作为主键时,Eloquent当使用“where”以主键作为参数查询表时,会将主键返回为“0”。这影响了从模型中检索其他属性。

解决方案:

要解决此转换问题,需要在 Eloquent 模型中配置两个属性:

  1. 递增:将其设置为“false”以指示主键不自动递增(对于字符串键来说是典型的)。
  2. keyType(仅限 Laravel 6.0): 将其设置为 'string' 以显式指定主键是字符串。

这是更新的 Eloquent 模型:

<code class="php">class UserVerification extends Model
{
    protected $primaryKey = 'verification_token';
    protected $incrementing = false;
    protected $keyType = 'string';
    // Other model definitions...
}</code>

通过配置这些属性,Laravel 现在可以正确处理字符串主键并避免将其转换为整数,解决“0”转换问题。

以上是如何处理 Laravel 5.2 中的自定义字符串主键转换问题的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn