Laravel5.8.17とVue2.5.17を用いてサイト構築しています。
axiosでデータの受信をした際、特定条件下で「0」が「undefined」になってしまい困っています。
■前提条件
値が0を取り得るカラムが入ったモデルが存在します(ここではモデル=Item、0が入り得るカラム=typeとします)。
LaravelのAPIを作成して、このモデルのデータを送受信しています(要はJSONで通信)。
フロント側ではconst response = await axios.get('URL')
という形で受信しています。
■実際の挙動
サーバー側を
$item = Item::all(); return $item;
こうした場合は正常に動作します。
(フロント側でconsole.log(response)
すると{id:1, type:0}, {id:2, type:1}
などとデータが出ます)
ですがサーバー側を
$item = Item::all(); $result['item'] = $item; return $result;
このようにして配列化(オブジェクト化?)した場合、フロント側のデータが{id:1, type: undefined}, {id:2, type: 1}
となります。
(値が0の場合のみundefinedになり、1以上の場合は正常な数値が入っています。データ構造自体は正常です)
var_dumpで確認したところ、$result['post']も$resultも中身は正常だった為、フロント側(JSONのパース?)の問題かなと思っていますが、どこをどう直せばいいか・確認すればいいか分かりません。
(「axios 0 undefined」などでググってみましたが同内容と思しきものが発見出来ませんでした)
配列化しないとか、undefinedだったら0とみなすとかで一応対処可能ではあるのですが、
なぜこうなるのか疑問なのと、直せるものなら直したいので質問しました。
確認事項の指摘だけでも頂けると助かります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/02 10:38
2019/09/03 12:03