【发布时间】:2017-09-16 16:51:12
【问题描述】:
不知何故,我只是使用它来管理它(将数据、数组从控制器传递到视图)
return redirect('whatever')->with('arrayName', $arrayName);
在视图内部通过
访问它 @if(!is_null(session('arrayName')))
<div class="alert alert-{{ session('arrayName')['something'] }} alert-dismissable">
// more code goes here
@endif
现在这似乎是一个会话,我正在使用这种技术以信息的形式传递数据(例如成功创建 XY、删除、...等等)(使用相同的消息数组的名称),有时会发生信息显示在不应该显示的页面上(因为上面的 HTML 位于每个 HTML/刀片页面内,以便始终有机会显示消息/警报),因为它仍然存储在会话中。因此,它不仅显示了一条旧消息,它甚至是我在应用程序中完全不同的地方使用的一条消息。
我想知道是 session() 调用是错误还是我需要刷新会话(如果是,如何以及何时?)或者我只是搞砸了控制器和视图之间的通信,因为我有看到(同样here)人们在视图中访问它时使用唯一的变量名,而不是 session()。那么这是否与旧的 Laravel 版本(我使用的是最新版本)有关,当时它只能在当时工作,或者我错过了什么?
感谢您的建议。
【问题讨论】:
-
为什么不用$request->session()->flash('arrayName', '任务成功!'); ...
-
@Serge 这如何与我之前使用的函数``redirect()->with()` 配合使用?请详细说明。
标签: php laravel session model-view-controller