Laravel response 返回的值全部处理为字符串

laravel response 返回的值全部处理为字符串

新公司接口返回格式 全部为字符串类型 最近打算用laravel 重构公司现有对app端接口 先有解决方案如下

1.config/databases目录下 在mysql 配置中在options中增加 

PDO::ATTR_STRINGIFY_FETCHES => env('ATTR_STRINGIFY_FETCHES')

2.在model 中设置

protected $casts = ['id' => 'string'];

后记

百度搜索 搜到答案在 response()->json() 中添加 第四个参数为 JSON_NUMERIC_CHECK

经测试 这个应该是把字符串格式数字转成int 类型 解决失败\

后百度搜索发现\
 问答:Laravel 从数据库读取 Int 型全部变成了 String 型帖子  

发现 此贴是全部转成string类型了  这不正是我想要的么!

看回答区发现这个帖子的解决方案 是安装mysqld 驱动 瞬间来了灵感 
但在配置文件中 加上 pdo 常量后 发现打印model 确实全部转成字符串了

但是 使用 toArray 或者 toJson 等格式化处理后 id 变成了int类型

在model 中加上 protected $casts = ['id' => 'string'] 又把id变回string类型 估计是laravel 在处理model 的时候 改变了此值类型

疑问

1.更改此项pdo配置 是否会影响 ROM和Collection 处理数据的性能?\

2.此解决方案和自己循环数据改成string对比哪个更好?\

3.有没有更好的解决方案呢?

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

mark住一波

5年前 评论

改了这个配置更好

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!