【问题标题】:How to access this value?如何访问这个值?
【发布时间】:2019-09-28 19:07:34
【问题描述】:

我被这个任务困住了。注销时,我必须访问用户登录时在其他文件中定义的这个 $time 值。我需要在注销函数中使用它的值。

我该怎么做?我已经阅读了有关访问器的信息,但我尝试使用它并没有成功。

广播服务提供者

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

在登录控制器中

public function logout() {
       $id = auth()->id();
        $user_info = \App\UserInfo::where('user_id', $id)->first(); 
        $user_info->save(); 
        auth()->logout();
        session()->put('left',now());
        return redirect('/');
    }

【问题讨论】:

  • 这就像您在过去 48 小时内提出的这个小代码块的第 11 个问题。既然您在这方面遇到了很多麻烦,也许退后一步,问一个更笼统的问题来解释您正在尝试做什么会有所帮助吗?
  • @ceejayoz 很抱歉打扰您。
  • 我不是说你在打扰我。我的意思是你在解决问题的边缘,也许没有首先考虑解决问题的更好方法。你想用这一切来完成什么?请参阅en.wikipedia.org/wiki/XY_problem 了解我问的原因。
  • @ceejayoz 感谢您的推荐!我会检查这个链接:)

标签: laravel accessor


【解决方案1】:

最好的方法是将其存储在您的数据库中,但您可以将其存储在会话中,如下所示:

    // Retrieve a piece of data from the session...
    $value = session('time-'.$user->id);

    // Store a piece of data in the session...
    session(['time-'.$user->id => now()]);

【讨论】:

  • 不幸的是,我收到错误“未定义的变量:用户”试图检索此数据。
【解决方案2】:

我想通了。有一种简单的方法可以在没有访问器的情况下做到这一点。

$user_info = \App\UserInfo::where('user_id', $id)->latest()->first(); 

【讨论】:

    猜你喜欢
    • 2012-05-10
    • 2012-03-13
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多