laravel5.6 Eloquent orm的一个坑

背景

博主一项目使用laravel5.6 + laravel-admin,现使用了laravel-admin的select的联动控件。实现省市区三级联动的功能。看了官方的文档,
1.png

问题

官方文档明确了对控件加载的数据结构有要求,接口返回的数据必须是id,text的数组类型,那么问题来了,博主在表中存放的真正id不是叫id,叫id的为自增的主键值,而真正的id字段名叫’cid’(varchar类型),于是orm命个别名吧
2.png

此时,发现取出的id值一直不对,输出后所有的id值为9223372036854775807(BIGINT的最大值)

原因

经过排查,博主发现,laravel的model操作会将字段为id的值自动转为int型,若你真实的字段本身为int型则没问题,一旦你真实的字段为varchar类型的,则会产生如上错误。

解决

博主最后对数据结果集使用了toArray方法,而后对结果遍历更改了字段名为‘id’
3.png

请关注我的订阅号

订阅号.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值