Php 中间件中的Laravel会话不总是设置

Php 中间件中的Laravel会话不总是设置,php,laravel,session,session-cookies,Php,Laravel,Session,Session Cookies,我在我的所有web路由上都设置了一个中间件,如果没有设置,它会将referer保存到会话中,这样我就可以在访问者转换后记录它 这是大部分时间< /强>,这意味着有时引用者是我自己的页面之一,通常是在整个客户旅程中间的某个地方,这对我来说完全没有意义。p> 因此需要澄清的是:referer是一个页面,中间件应该在其中启动并已保存了一个有效或空的referer。此页面通常不是我登录之前的开始或最后一页 我的简化中间件: public function handle(Request $request

我在我的所有web路由上都设置了一个中间件,如果没有设置,它会将referer保存到会话中,这样我就可以在访问者转换后记录它

<强>这是大部分时间< /强>,这意味着有时引用者是我自己的页面之一,通常是在整个客户旅程中间的某个地方,这对我来说完全没有意义。p> 因此需要澄清的是:referer是一个页面,中间件应该在其中启动并已保存了一个有效或空的referer。此页面通常不是我登录之前的开始或最后一页

我的简化中间件:

public function handle(Request $request, Closure $next)
{
    if (!$request->session()->has('data')) {
        $request->session()->put('data', ['referer' => $request->header('referer')]);
    }

    return $next($request);
}

你说“我的简化中间件”。什么是非简化版本?您的代码是API还是MVC应用程序?@George Hanson我也在该中间件中做其他事情,但与此无关issue@Nicolas是Laravel所以MVCCA你能分享你的HTTP内核吗?