前提・実現したいこと
Laravel初心者です。
テーブルに保存するデータの一部を、json_encodeでjson形式に変換してから保存しようとしています。
json_encodeの結果をprint_rで確認すると、希望の形式に変換されていたため、オブジェクトに入れてsaveを実行したのですが、実際にテーブルに保存されたデータは次のようなものでした。
データベースはmySQL、utf8mb4_unicode_ciです。
基本もまだまだの初心者のため、できるだけ易しい言葉で解説を頂けると助かります。宜しくお願い致します。
発生している問題・エラーメッセージ
無事DBに保存はできたが、求めているjson形式ではなくなっていた。
テーブルに保存したいデータ形式の例
{ "ID": "1", "TEXT": "テキスト" 以下略
実際に保存されたデータ(フィールド:content)
"{\n \"ID\": \"1\",\n \"TEXT\": \"テキスト\" 以下略
該当のソースコード
PHP
1$modelName = $this->modelName; 2 3$this->model = new $modelName([ 4 'id' => $this->ID, 5 'content' => json_encode($this->values, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT), 6 ]); 7$this->model->save();
試したこと
オブジェクトに変換後の値を入れた段階で崩れることを確認しました。
以下の状態でなら希望の形に変換されていることを確認しました。
PHP
1$testVal = [ 2 'id' => $this->ID, 3 'content' => json_encode($this->values, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT), 4 ]; 5print_r($testVal['content']); 6exit; 7 8/* 9出力結果 10{ 11 "ID": "1", 12 "TEXT": "テキスト" 13} 14*/
回答2件
あなたの回答
tips
プレビュー