创建一个可在控制器的所有方法上访问的会话

时间:2017-06-08 05:53:55

标签: php laravel session

我正在开发一个laravel的电子商务项目,客人可以在登录之前将项目添加到他的购物车中,为此我计划使用会话来帮助跟踪该客户的所有项目。

该项目有很多视图,但我使用相同的控制器来显示所有这些,所以我试图找到一些我可以创建一个会话(我在构造函数中尝试但是它没有工作,因为它得到重新 - 创建)

我的构造函数代码

public function __construct()
    {
$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
            $finalCode = substr(str_shuffle(str_repeat($pool, 12)), 0, 12);
            session(['UserIdentity' => $finalCode]);
        $abc = session('UserIdentity');
        if(!(isset($abc)))
        {
            // Auto generated Code
            $pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
            $finalCode = substr(str_shuffle(str_repeat($pool, 12)), 0, 12);
            session(['UserIdentity' => $finalCode]);

            $finalsession = session('UserIdentity');
            dd($finalsession);
        }
    }

请建议我解决方法,我可以做这项工作或任何其他解决方案也欢迎。

期待你的感谢..

1 个答案:

答案 0 :(得分:0)

您应在访客路线上设置middleware,然后根据您的应用要求使用会话。

从Laravel 5.3开始,在构造函数中无法访问会话。由于所有路由都使用web中间件,为您的应用程序启用会话功能。这是在构造函数之后执行的。