使用ID关闭会话Laravel

时间:2019-03-25 14:03:06

标签: php laravel

如何在auth的注销方法中关闭具有ID的会话?在后控制器中,在方法展示中,我设置了会话:

 session(["is_model_open_post_id" . $post->id => false]);

但是,当用户注销时,我需要关闭此会话,设置为true。

 session(["is_model_open_post_id" . $post->id => true]);

但是我不知道如何在方法注销中获取帖子的ID。

1 个答案:

答案 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 }); 之后获得。