【发布时间】:2019-05-31 10:32:28
【问题描述】:
当几个模型 id 相同但另一个具有前导零而另一个没有时,我遇到了 Laravel 关系问题。
Product ID | Productname
-----------|------------
012345 | Product A
12345 | Product B
如果在同一个查询中加载了这些关系,则只会返回第一个,而不会返回另一个。
数据库列是字符串,在 Product 模型中,我已将递增设置为 false 并将 id 属性强制转换为字符串。 Laravel 的热切加载不考虑前导零吗?
我无法更改带有前导零的产品 ID。
提前致谢!
【问题讨论】:
-
请分享关系定义代码。
-
请给我们看看你的模型类,好吗?
-
eloquent 模型有一个属性来设置主键类型。将其从整数更改为字符串。它还有一个键来定义主键是否是自动递增的。将其设置为假。不确定这个属性的名称,但我相信你能找到它! :-)
-
正如我在回答中提到的,但后续投票是不支持的,您需要定义
public $incrementing = false;并在迁移中将属性类型设置为string。 -
"我已将递增设置为 false"
标签: laravel laravel-5.5 eager-loading leading-zero