如何在auth的注销方法中关闭具有ID的会话?在后控制器中,在方法展示中,我设置了会话:
session(["is_model_open_post_id" . $post->id => false]);
但是,当用户注销时,我需要关闭此会话,设置为true。
session(["is_model_open_post_id" . $post->id => true]);
但是我不知道如何在方法注销中获取帖子的ID。
答案 0 :(得分:0)
;with cteP as (
Select GROUNDID
,OBJECTID
,MAINGROUNDID
,PathID = cast(GROUNDID as varchar(max))
From #PMEGROUND
Where NULLIF(MainGroundID, '') IS NULL
Union All
Select GROUNDID = r.GROUNDID
,OBJECTID = r.OBJECTID
,MAINGROUNDID = r.MAINGROUNDID
,PathID = p.PathID+concat(',',cast(r.GROUNDID as varchar(max)))
From #PMEGROUND r
Join cteP p on r.MAINGROUNDID = p.GROUNDID)
Select A.GROUNDID
,OBJECTID
,B.*
,PathID
From cteP A
Cross Apply (
Select Lvl1 = xDim.value('/x[3]','varchar(50)')
,Lvl2 = xDim.value('/x[2]','varchar(50)')
,Lvl3 = xDim.value('/x[1]','varchar(50)')
,Lvl4 = xDim.value('/x[4]','varchar(50)')
From ( values (cast('<x>' + replace(PathID,',','</x><x>')+'</x>' as xml))) B(xDim)
) B
Order By PathID
helpers参数用于当前用户的session()
或get
会话数据。您正在使用的数组函数正在尝试再次将set
数据发送到当前会话。
如果我是正确的话,您想做的是完全set
个会话数据键/值对。
这可以通过以下方法完成:
remove
如果您想忘记所有会话数据:
session()->forget('is_model_open_post_id' . $post->id);
要控制注销时发生的情况,您将需要更新路由以覆盖自定义session()->flush();
注销路径:
Auth::routes()
注意:应该在Route::post('logout', function() {
session()->forget('is_model_open_post_id' . $post->id);
auth()->logout(); // or Auth::logout();
return redirect('/'); // or to another route
});
之后获得。