laravel jsonのレスポンスでデータが数値型ではなく文字列型になってしまう
ローカルの開発環境では発生しなかったのですが、本番環境で動かすと以下のような現象が発生しました。
例えば以下のデータをjson
でレスポンスするとデータが文字列型になってしまいました。
//レスポンスするデータ
りんご: 3
バナナ: 5
//レスポンスされたデータ(javascriptで受け取ったデータ)
りんご: '3'
バナナ: '5'
レスポンスの処理を以下のように修正すると、数値型のままレスポンスすることができました。
// return response()->json(["foo" => "bar"], 200); //修正前
return response()->json(["foo" => "bar"], 200, [], JSON_NUMERIC_CHECK); //修正後
ローカル環境では正しく動いていたので、php
やmysql
のバージョンや設定が関係しているのかもしれませんが、ひとまずこれで解決できました。