在控制器中共享一个变量 - Laravel

时间:2017-08-29 10:24:50

标签: php laravel

我从会话中获取了user_id并在我的控制器中使用了相当多的内容。所以我正在研究检索该变量的方法。

我已经设置了所有内容(我的理解),但变量正在返回

  

我的控制器如下所示:

O(n)

这与会话有关吗?

我该如何找回它?

1 个答案:

答案 0 :(得分:4)

您遇到此问题的原因是因为控制器__construct方法在启动会话的中间件之前运行。

more information here

正如帖子所说,您可以使用控制器middleware方法中的__construct方法解决此问题:

public function __construct()
{
    $this->middleware(function ($request, $next) {

        $this->user_id = session('id');

        return $next($request);
    });

}

这将允许您在控制器上设置user_id

希望这有帮助!