首页 > 解决方案 > Laravel 会话问题

问题描述

我正在使用 Laravel 5.8,我需要在会话中存储一些数据。这是我的控制器的代码:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PagesController extends Controller
{
    public function index(Request $request)
    {
        $this->storeInSession($request);
        dump(session()->all());
    }

    public function otherPage(Request $request)
    {
        $this->storeInSession($request);
        dump(session()->all());
    }

    protected function storeInSession(Request $request)
    {
        if(!$request->session()->exists('landingpage')){       
            $request->session()->put('landingpage', $request->route()->getName());
        }
    }
}

我创建了受保护的函数,该函数storeInSession存储与用户首先登陆网站的页面相关的路由名称。但是,landingpage每次我在两个页面(index 和 otherPage)之间移动时,变量都会发生变化,这意味着我无法存储正确的登录页面,并且我发现laravel_session我的浏览器中没有 cookie。

此外,每次我在两个页面之间移动时,_token 都会不断变化。

但是,当我提交表单(发出 POST 请求)时,会出现 laravel 会话 cookie,并且所有内容都开始正确存储。

我正在使用file会话驱动程序,life_time是 120,expire_on_close是假的,encrypt也是假的。

难道我做错了什么?

标签: phplaravel

解决方案


推荐阅读