回答編集履歴

3

編集

2017/10/05 06:40

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -54,6 +54,12 @@
54
54
 
55
55
  $data = \DB::select(\DB::raw("SELECT * FROM searches WHERE id = :id"), ['id' => $id]);
56
56
 
57
- dd(strlen($data[0]['result']));
57
+ dd(strlen($data[0]->result));
58
+
59
+ // もし文字列長が正しければ以下も実験
60
+
61
+ $a = json_decode($data[0]->result, true);
62
+
63
+ dd($a);
58
64
 
59
65
  ```

2

追記

2017/10/05 06:40

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -39,3 +39,21 @@
39
39
  }
40
40
 
41
41
  ```
42
+
43
+
44
+
45
+ ### 追記
46
+
47
+ 不整合の原因が、モデルへの変換過程で起きるのか、DBから値を取得する際に起こるのかを判断するため、このコードを試してください。
48
+
49
+
50
+
51
+ ```php
52
+
53
+ // Modelへの代入を行わず、レコードをstdClassの配列形式で得られる
54
+
55
+ $data = \DB::select(\DB::raw("SELECT * FROM searches WHERE id = :id"), ['id' => $id]);
56
+
57
+ dd(strlen($data[0]['result']));
58
+
59
+ ```

1

処理を修正。

2017/10/05 06:33

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -4,7 +4,9 @@
4
4
 
5
5
  $data = Search::select('result', 'query')->where('id', 5)->first();
6
6
 
7
+
8
+
7
- $all = $data ? $data['result'] : [];
9
+ $json_array = json_decode($data->getAttributes()['result']));
8
10
 
9
11
 
10
12