在我的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
在写入会话后,尝试手动保存会话(通过->save()
)。
示例:
session()->put('name', $user->name);
session()->save();
如果这似乎可以解决,那么您正在某个地方杀死Laravel的请求生命周期。 Laravel使用中间件保存任何会话数据,因此所有会话数据在请求生命周期结束时都将保留。
您在某处使用dd
吗?