【问题标题】:Session pull and/or flush does not remove session data会话拉取和/或刷新不会删除会话数据
【发布时间】:2016-05-27 15:49:46
【问题描述】:

我的登录方法中有这行代码

Session::put('msg','Welcome user');

通过 AJAX 获取该消息的值,然后将其删除(理论上)(这就像一条 Flash 消息):

public function getMessage( ){

    $msg = Session::pull('msg','');// tried this 

    Session::flush();// and/or this 

    return $msg;
}

仍然没有删除会话中的消息。我希望它表现得像一条消息。如果我使用Session::pull() 和\或Session::flush(),为什么该值仍然存在?

【问题讨论】:

  • 你能说会话仍然存在吗?您是否在某处回响了该会话?
  • 我的 ajax 调用总是在刷新页面时输出消息。我只希望它输出一次消息并删除它。我在 laravel 的 session 文件夹中进行了搜索。价值还在....
  • 请使用 ajax 发布您的完整代码。
  • 这是一个 AngularJs 服务,它执行 Ajax 部分。它看起来像这样 ` $http.get('app/message') ` 。但是我不认为这里有JS问题...
  • 但是您在哪里回显您的会话?你只给我们看两行。 $msg = Session::pull('msg',''); Session::flush();

标签: php laravel session laravel-5


【解决方案1】:

laravel 已经有 session flash 的系统,可以在 session flash 中设置数据

Session::flash('msg', 'Event Created');

然后当你单次显示这个会话时,它会自动删除,你不需要考虑它

Session::get('msg')

【讨论】:

  • 我以前试过这个。它不起作用。这就是为什么创建我的方法。 Session::flash('msg', 'Event Created'); 不做任何事情。我输出了会话文件内容,'flash' 值为空 's:5:"flash";a:2:{s:3:"old";a:0:{}s:3:"new"; a:0:{}}'
猜你喜欢
  • 2015-04-02
  • 1970-01-01
  • 2015-04-02
  • 1970-01-01
  • 2016-01-01
  • 2021-10-01
  • 2013-02-25
  • 2012-05-23
相关资源
最近更新 更多