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 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。