laravel - 在 Laravel 中,当页面被支持时,我得到旧的会话变量
问题描述
每个人。我正在开发一个 laravel 项目,但会话变量有问题。在 a.php 中,我有一个会话变量“myid”设置为 1。在此页面中,我将会话变量设置为 2。然后转到另一个使用会话变量“myid”的页面 (b.php)。在页面中,“myid”工作正常。它是 2。然后我通过单击浏览器的后退箭头支持 a.php 并获取“myid”。但它是 1。它获取旧会话值。似乎获得了缓存值。我想获得更新的值 2。出了什么问题。寻求您的帮助。谢谢
在 home.php 中,我将“myid”设置为 1,然后转到 a.php。
- 一个.php
// 放置会话
函数 setMyId(id) {
$.ajax({
url: put_session.php
data: {"myid", id}
)}
}
// 获取会话
$(文档).ready(函数(){
...
$.ajax({
url: get_session.php
success: function(data) {
console.log(data); // it returns always 1 comes from wherever.
}
});
...
});
- put_sessoin.php
session()->put("myid", $request->myid);
- get_sessoin.php
session()->get("myid");
// 转到 b.php
函数 goToNext() {
window.location.href = b.php;
}
- b.php
$(文档).ready(函数(){
...
$.ajax({
url: get_session.php
success: function(data) {
console.log(data); // it returns new data. works correctly;
}
});
...
});
解决方案
你好呀,
请在不再使用时使用 laravel 的会话销毁功能!
public function destroy($sessionId) {}
destroy 方法应该从持久存储中删除与 $sessionId 关联的数据。
public function gc($lifetime) {}
gc 方法应该销毁所有早于给定 $lifetime 的会话数据,这是一个 UNIX 时间戳。对于像 Memcached 和 Redis 这样的自过期系统,这个方法可以留空。
更多细节: Laravel 会议文档
谢谢!
推荐阅读
- laravel - laravel 多条记录到一条记录....但是如何?
- haskell - Haskell 使用 map 调用具有多个参数的函数
- visual-studio - 使用手动转换的双目标 dotnet 核心和网络框架项目打开解决方案时,Visual Studio 2019 挂起
- c - 嵌入式 GCC 优化魔法
- java - Eclipse 中用户“@'localhost'(使用密码:NO)的访问被拒绝,而不是 'root'@'localhost',类路径已损坏
- r - 当使用 flexdashboard 生成的 html 文件在本地打开时,有没有办法让图形渲染?
- javascript - React JS:渲染的钩子比预期的要少。这可能是由于意外提前退货声明造成的
- css - 基于类的 Stencil 组件上的样式宿主元素
- android - 在 Android 10 上的 Xamarin 表单中使用权限请求遇到可解释的问题
- json - 无法将文本数据转换为 json