Laravel会话数据未老化

时间:2018-08-03 14:11:23

标签: php laravel

我不确定标题是否正确,因为我还不能弄清楚如何解决这个问题。

我所拥有的:

  • 具有2个字段的简单模型

  • 巡航控制器

  • 在创建/编辑时,我处理数据并使用一些信息进行重定向。信息通过以下两种方法之一传递:

    • session()->flash("key","info")
    • redirect()->route("route.name.here")->with("key","info")

我(在布局刀片文件的底部)添加了一行,以查看会话中存储的内容,希望我能了解发生了什么问题

@dd(session()->all(),session("_flash"),session("key"))

我的实际问题是什么?我一次又一次得到相同的信息。

  • 创建新实例并向用户刷新确认
  • 验证返回并显示错误消息

无论发生哪种情况都无所谓,我在每次连续的页面调用中都再次获得了返回的信息。如果我执行某项操作以获取新消息,则该消息将替换旧消息,并在我网站的每个页面上与我在一起。 (即使主页什么也不做,只给您一些“ lorem ipsum”文本) 如果最后一个信息是由于验证失败而导致的错误,我还将保留旧的输入。 索引页仅加载实例并加载视图文件(以及数据)。 例如,切换索引文件的页面(我使用的是docs中的laravels分页),由于转储输出,我看不到“会话”中的任何内容发生变化(包括带有键“ _token”的条目)。以为应该对此进行更改,但我目前无法与工作网站联系)。用于创建(模型的)新实例的表单包含在索引页面中(内联表单的引导卡标题,因为它仅需要1个字段)。

我已经尝试了什么?

  • 清除缓存
  • 删除会话文件(再次创建)
  • 重新启动Apache
  • 重新启动服务器(类似于raspberry pi)

我不知道我是怎么想的,并希望能找到一些指针

系统:

  • PHP:7.3.3alpha4
  • Laravel:5.6.29
  • 会话处理:文件
  • 操作系统:Ubuntu 18.04.1 LTS

编辑: 我能够使用不同的laravel安装检查_token键,并且每次加载页面时值都会改变。在我看来,会话处理存在问题,但由于其中只有部分问题,我无法弄清楚(写一些新东西显然是可行的,但更改似乎会遇到问题)

编辑2:

1 个答案:

答案 0 :(得分:0)

正如我所展示的,您在会话laravel文档中缺少一些细节。

首先,如果在两种方法(create , edit)中使用redirect,则最好将with用于Flash会话消息,如下例所示:

 return redirect('route.name')->with('status', 'your message here');

有关功能如何工作的更多信息,请检查redirecting with flashed session data in laravel application

接下来,您应该在刀片服务器模板中对该会话变量(如果不存在)创建一个测试,然后显示它。下面的代码将显示如何使用Session laravel Facade:

@if(Session::has('key'))
    {{ Session::get('key') }}
@endif

如果您对laravel 5.0 session documentation section感到好奇,则可以找到如何使用会话外观。