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 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

mark住一波

5年前 评论

改了这个配置更好

5年前 评论

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