首页 > 解决方案 > 如何覆盖此代码以便正确插入数据?

问题描述

这个问题是这个问题的后续如何在用户离开时正确插入时间(user_left 和 user_joined 得到相同的值)

当用户登录并存储在数据库中时,我会获取数据。

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

当用户注销并存储在数据库中时,我有时间。

 public function logout() {
        $info = auth()->user()->info;
        $info->left = now(); 
        $info->save(); 
        auth()->logout();
        session()->forget('name');
        session()->put('left', now());
        return redirect('/');
      }

用户信息模型

public static function storeUser() { 
    UserInfo::create([
    'user_id' => Auth::id(),
    'ip' => Request::ip(),
    'name' =>  Auth::user()->name, 
    'joined' => now(),   
 ]);  
} 

这就是我所拥有的。 在此处输入图像描述

用户离开的时间不是以我想要的方式插入的。以当前用户名的第一条记录获取时间。我想查看当前用户接收该数据的最后一条记录(当 Syd 12 注销时,Syd 10 收到了 Syd 的 12 '左'数据。同样的故事也发生在凯特身上。)

标签: sqldatabaselaravel

解决方案


推荐阅读