如何获取此变量的值?

时间:2019-09-28 13:51:26

标签: php laravel laravel-5 eloquent

在注销功能中,我需要获取$ time的值。用户登录时,该变量是在其他函数中声明的。

Broadcast::channel('chat', function ($user) {
        $ip = Request::ip();
        $time = now();  
        if (auth()->check() && !session()->has('name'))  {  
            UserInfo::storeUser();
            session()->put('name',$user->name);
            return [
                'id' => $user->id,
                'ip' => $ip,
                'name' => $user->name,
                'joined' => $time,                   
            ];
        }
    });

当用户注销时,我必须检查他的“ id”和“ joined”的值。我该怎么办?

public function logout() {
       $id = auth()->id();
       $info = \App\UserInfo::where('id', $id)
                             -> where('joined', $time)
                             ->update(['left' => now()]);
        auth()->logout();
        session()->forget('name');
        session()->put('left',now());
        return redirect('/');
    }

1 个答案:

答案 0 :(得分:1)

您必须使用主唯一键作为ID,并在表中创建一列“ user_id”以存储auth()-> id。在加入/启动登录会话时,将“ id”存储为应用程序中的“ session_id”。

您可以通过使用id来获得“ joined”值,

$joined = \App\UserInfo::where('id', auth()->session_id)
          ->select('joined')
          ->first()
          ->joined;

在会话结束时,使用ID更新左侧的详细信息,

 $info = \App\UserInfo::where('id', auth()->session_id)
            ->update(['left' => now()]);