新公司介面返回格式 全部為字串型別 最近打算用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 協議》,轉載必須註明作者和本文連結