回答編集履歴
3
編集
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]
|
|
29
|
+
dd(strlen($data[0]->result));
|
|
30
|
+
// もし文字列長が正しければ以下も実験
|
|
31
|
+
$a = json_decode($data[0]->result, true);
|
|
32
|
+
dd($a);
|
|
30
33
|
```
|
2
追記
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
処理を修正。
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;
|