【发布时间】:2021-09-29 00:30:18
【问题描述】:
Route::get("test", function (){
$result = \Illuminate\Support\Facades\Session::get("filter_values");
\Illuminate\Support\Facades\Session::forget("filter_values");
\Illuminate\Support\Facades\Session::put('filter_values', "abcdef");
dd("result: ", $result);
});
为什么刷新页面时会话返回null?
【问题讨论】:
-
运行
dd()通常会阻止将事物设置为会话,因为它会终止所有后续执行,包括持久化到会话处理程序的逻辑。改用\Log::info(session()->get('filter_values'))并检查storage/logs/laravel.log文件中的'abcdef' -
@Tim Lewis 同样的结果返回 null
-
当然返回
null;如果您关注我的评论,则删除了dd()函数。您是否按照我的指示检查了您的日志?你的代码对我来说很好:i.stack.imgur.com/0nTdx.png, i.stack.imgur.com/42UUs.png -
如果在 put() 方法之后使用 get() 方法,它也可以与 dd() 函数一起使用。如果你看上面的例子,我在 put() 之后使用了一个变量) 方法
-
如果您先执行
$result = session()->get("filter_values");,然后执行Log::info($result),它仍然有效,但仅在第一次重新加载之后。 在初次访问时,即在运行session()->put()之前,它记录''空白。所有后续刷新记录'abcdef',因此仍按预期工作。 i.stack.imgur.com/x7x8P.png, i.stack.imgur.com/Uq8Xg.png