Laravel 5 Laravel全局会话帮助程序不工作

Laravel 5 Laravel全局会话帮助程序不工作,laravel-5,Laravel 5,我使用的是Laravel版本5.4.36,全局会话助手不再工作 以下是我所做的:当登录用户访问控制器功能时,我需要保存一些数据,当用户刷新(重新加载)页面时,我希望保留这些数据,但全局会话助手似乎没有这样做。我做错什么了吗?我的会话是基于文件的。 我跟着,但不幸没有得到帮助:) 在我的例子中,使用$request->session()->put(…)存储数据是无用的,因为每当用户重新加载页面数据时,数据都会丢失 use Illuminate\Http\Request; class WatchC

我使用的是Laravel版本5.4.36,全局会话助手不再工作

以下是我所做的:当登录用户访问控制器功能时,我需要保存一些数据,当用户刷新(重新加载)页面时,我希望保留这些数据,但全局会话助手似乎没有这样做。我做错什么了吗?我的会话是基于文件的。 我跟着,但不幸没有得到帮助:)

在我的例子中,使用
$request->session()->put(…)
存储数据是无用的,因为每当用户重新加载页面数据时,数据都会丢失

use Illuminate\Http\Request;

class WatchController extends Controller{

     public function __construct(){
        $this->middleware(['auth']);
     }

    public function watchAds(Request $request){

       $userId = Auth::user()->id;

       if(!session('data')){

            echo "Data not set";
            $data = array(1,3,4,5);
            session(['data' => $data]);
            //Update, here it print data but if I do reload the page then always load this if section.
            $data = session('data');
            print_r($data);

       }else{

            echo "Data already set";
            $data = session('data');
            print_r($data);
       }
       exit;
    }
}

会话数据实际上存储在请求生命周期的后期(搜索“可终止中间件”),非常晚,甚至在内容发送到用户浏览器之后

但是
退出会立即结束PHP脚本,因此不会执行中间件的
terminate
方法


更准确地说,您可以跳过执行会话/中间件/StartSession.php的
terminate
方法,尝试将会话驱动器更改为其他内容。在会话中更改会话驱动程序后,会得到相同的结果。php您的
存储
目录可写吗?您设置应用程序密钥了吗?请参阅。@GrasDouble我有windows(10),并且存储目录是可写的,应用程序密钥已经存在于.env文件中,并且
APP\u URL=http://localhost
但我是这样访问我的网站的:
http://localhost/parent/subdir/public/watch
,此处的
子目录是laravel安装的根目录。