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

问题描述 投票:0回答:1

在我的Page A中,我有:

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

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

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

并且显示My Name

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

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

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

PS:我正在使用Laravel 5.7

更新

这里是我的Page A,我叫session()->put

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

这显示Success! My Name

但是当我去Page B并有一个:

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

我得到name =

更重要的是,如果我将name设置为Page B

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

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

如果我回到Page A,再次在此处设置name,然后回到Page B,它仍然显示name = ASDF,而不是name = My Name

php laravel session laravel-5.7
1个回答
1
投票

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

示例:

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

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

您在某处使用dd吗?

© www.soinside.com 2019 - 2024. All rights reserved.