【问题标题】:how create and save session value after logout注销后如何创建和保存会话值
【发布时间】:2018-05-01 17:39:41
【问题描述】:

我正在出于某种目的创建会话,但是当用户注销时,目的值变为空,但我想在用户注销后使用它。情况是会话由管理员创建,我想将此会话用于普通用户,但是当管理员注销其会话也变为空..

这是laravel的注销代码

 public function logout(Request $request)
    {
        $this->guard()->logout();

        $request->session()->invalidate();

        return redirect('/');
    }

【问题讨论】:

    标签: laravel


    【解决方案1】:

    您可以这样做:

    首先获取您想要保留的所有数据。

    然后删除所有会话数据。

    然后将数据保存到会话中。

    然后退出。

     public function logout(Request $request)
     {
    
     // get the data first for example the user's name
     $name = Auth::user()->name;
     $this->guard()->logout();
     $request->session()->invalidate();
    
     // save the data into a new session
     session(['name' => $name]);
    
    
     return redirect('/');
     }
    

    然后在您的视图中,您会得到如下数据:

    @if(session('name'))
      {{ session('name') }}
    @endif
    

    【讨论】:

    • 我可以将会话数据保存到会话中吗? bcz 我的会话数据在另一个地方或控制器上
    • $request->session()->invalidate();这行代码使任何类型的用户和控制器的所有会话都无效,或者只是与管理员相关。?
    • 它将删除所有关于当前认证用户的会话数据。这就是为什么我们在使会话无效之前将数据设置为变量
    • 但我曾尝试将会话数据保存到变量中但没有发生,现在我要采用第二种方法,即我在数据库中保存一个布尔值,当它为真时它会执行一些动作。是写方法还是我必须参加会议..?
    • 这取决于您是否只需要一个布尔值,即 true 或 false,然后继续。
    猜你喜欢
    • 1970-01-01
    • 2017-12-10
    • 2014-03-27
    • 2011-06-26
    • 2015-04-02
    • 2019-05-17
    • 2014-12-16
    • 2016-04-01
    • 1970-01-01
    相关资源
    最近更新 更多