繁体   English   中英

Laravel - 会话未正确存储/未持久化?

[英]Laravel - Sessions not storing properly / Not persisting?

在我的Page A中,我有:

session()->put('name','My Name');

并通过以下方式对其进行测试:

return session()->get('name');

它显示My Name

现在在我的Page B上,我返回了 session:

return session()->get('name');

但是现在它显示 null 或“”。 我在这里做错了什么?

PS:我正在使用 Laravel 5.7

更新

这是我调用session()->putPage A

if(Hash::check($password, $user->password)){
    session()->put('name', $user->name);
    return response()->json([
        'message' => 'Success! '.session()->get('name')
    ]);
}

这显示Success! My Name Success! My Name

但是当我 go 到Page B并有一个:

$thename = session()->get('name');
return 'name = '.$thename;

我得到name =

更重要的是,如果我在Page B上设置name

session()->put('name', 'ASDF');

第一次加载后,它会在Page B上显示name = ASDF 我删除了这一行: session()->put('name', 'ASDF'); 并刷新页面,它仍然显示name = ASDF ,这意味着它保存在那里。

如果我 go 回到Page A ,在那里再次设置name ,然后 go 回到Page B ,它仍然说name = ASDF not name = My Name

在写入 session 后,尝试手动保存 session(通过->save() )。

例子:

session()->put('name', $user->name);
session()->save();

如果这似乎可以解决它,那么您正在某个地方杀死 Laravel 的请求生命周期。 Laravel 使用中间件来保存任何 session 数据,因此所有 session 数据都会在请求生命周期结束时持久化。

你在某处使用dd吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM