我正在尝试进行在线测验,用户可能有充足的时间来填充。我的问题是,存储此类信息的最佳方法是什么,因此用户可以在一周之后回来,仍然可以查看并编辑已填充的输入。
如何在Laravel中完成? 我应该使用会话还是有任何有用的包?
目前我正在使用数据库会话,但是如何在用户注销后将会话存储在数据库中? 每次我注销我的会话值都会被删除。
答案 0 :(得分:1)
在名为“completed”的答案表中添加一个新列,此列为布尔值,默认为“false”。
然后,当用户完成测验时,将此值更改为“true”。
这种方法的缺点是当您在答案表中有所需的值时,您需要在用户通过您的程序而非数据库结构完成测验时验证所有必需的值。
另一种方法是使用Laravel Cache Facade的put和get方法,如下所示:
//Use put method to store a value until $expiresAt
$expiresAt = now()->addMinutes($minutesInAWeek);
Cache::put('key', 'value', $expiresAt);
//Use the get method to retrieve the value stored
$value = Cache::get('key');
中的更多缓存外观