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

質問編集履歴

1

追記

2018/10/13 06:00

投稿

kriht
kriht

スコア26

title CHANGED
File without changes
body CHANGED
@@ -20,4 +20,49 @@
20
20
 
21
21
  何度/helloを訪れてもデータベースの'latest_visit'はNULLになっています。
22
22
 
23
- 原因がわかる方教えてください。
23
+ 原因がわかる方教えてください。
24
+
25
+ ---
26
+ 追記
27
+
28
+ sessionsのデータベース定義
29
+
30
+ ```SQL
31
+ CREATE TABLE `sessions` (
32
+ `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
33
+ `user_id` int(10) UNSIGNED DEFAULT NULL,
34
+ `ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
35
+ `user_agent` text COLLATE utf8mb4_unicode_ci,
36
+ `payload` text COLLATE utf8mb4_unicode_ci NOT NULL,
37
+ `last_activity` int(11) NOT NULL,
38
+ `latest_visit` timestamp NULL DEFAULT NULL
39
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
40
+ ```
41
+ 'latest_visit'を保存している処理(HelloControllerのindexメソッド内に記述)
42
+
43
+ ```PHP
44
+ $date = time();
45
+ $latest_visit = date("Y/m/d H:i:s", $date);
46
+ $request->session()->put('latest_visit', $latest_visit);
47
+ ```
48
+
49
+ 'latest_visit'を取り出す処理ですが、そもそもページを訪問した後にデータベースの中身を見ると'latest_visit'がNULLになっているので、取り出す処理以前に保存されていないです。
50
+
51
+ ```PHP
52
+ $last_time = $request->session()->get('latest_visit');
53
+ ```
54
+ 保存する際に$latest_visitは存在しています。
55
+ ```PHP
56
+ $date = time();
57
+ $latest_visit = date("Y/m/d H:i:s", $date);
58
+ var_export($latest_visit);
59
+ // '2018/10/13 05:15:08'
60
+ $request->session()->put('latest_visit', $latest_visit);
61
+ ```
62
+
63
+ $latest_visit = date("Y-m-d H:i:s", $date);
64
+ としても保存されません。
65
+
66
+ タイムスタンプ以外で、VARCHARを格納するカラムを作って文字列を保存させてもNULLになったので、何も保存できない状態です。
67
+
68
+ Laravelの標準のpayloadなどは正常に保存されます。