Laravel response 返回的值全部處理為字串

PhoenixIcy發表於2019-07-24

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

相關文章