質問するログイン新規登録

回答編集履歴

3

編集

2017/10/05 06:40

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -26,5 +26,8 @@
26
26
  ```php
27
27
  // Modelへの代入を行わず、レコードをstdClassの配列形式で得られる
28
28
  $data = \DB::select(\DB::raw("SELECT * FROM searches WHERE id = :id"), ['id' => $id]);
29
- dd(strlen($data[0]['result']));
29
+ dd(strlen($data[0]->result));
30
+ // もし文字列長が正しければ以下も実験
31
+ $a = json_decode($data[0]->result, true);
32
+ dd($a);
30
33
  ```

2

追記

2017/10/05 06:40

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -18,4 +18,13 @@
18
18
  case JSON_ERROR_INVALID_PROPERTY_NAME: dd('JSON_ERROR_INVALID_PROPERTY_NAME'); break;
19
19
  case JSON_ERROR_UTF16: dd('JSON_ERROR_UTF16'); break;
20
20
  }
21
+ ```
22
+
23
+ ### 追記
24
+ 不整合の原因が、モデルへの変換過程で起きるのか、DBから値を取得する際に起こるのかを判断するため、このコードを試してください。
25
+
26
+ ```php
27
+ // Modelへの代入を行わず、レコードをstdClassの配列形式で得られる
28
+ $data = \DB::select(\DB::raw("SELECT * FROM searches WHERE id = :id"), ['id' => $id]);
29
+ dd(strlen($data[0]['result']));
21
30
  ```

1

処理を修正。

2017/10/05 06:33

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -1,8 +1,9 @@
1
1
  らちがあかないので、デコードでなにが起きたのかエラーを検知するコードを作りました。直接的な問題の解決ではないですが、手がかりになるかと思います。
2
2
  ```php
3
3
  $data = Search::select('result', 'query')->where('id', 5)->first();
4
- $all = $data ? $data['result'] : [];
5
4
 
5
+ $json_array = json_decode($data->getAttributes()['result']));
6
+
6
7
  // この処理を追加
7
8
  switch (json_last_error()) {
8
9
  case JSON_ERROR_NONE: dd('JSON_ERROR_NONE'); break;