现在使用Laravel5.1正式环境写代码,其实遇到了一些问题,有一个问题困扰了很久,那就是session的问题。
在Laravel5中有时候保存的Sesssion在下一次请求中丢失了了,无论是通过什么Session::save()
,还是什么其他方法都不太管用,其实问题是因为在Laravel5中,将
SESSION和session()这两种方式保存的session区分开来的,因为
_SESSION 保存的变量存放位置,实际上是php.ini
文件中设置。
而laravel中的session默认保存在stroage/framework/sessions
中。
如果你通过 SESSION[′key′]= value来设置$SESSION 没有办法保存(具体原因有待调查 ,需要查看Laravel5有关session的源码,主要问题有两个,Laravel是如何保存session的,并且使用多种驱动保存session,第二种laravel是否启动了session_start(),在哪里启动 )
解决方案: 将php.ini中的session.auto_start的选项置为1就可以了,这样就打开了php自带的$SESSION保存,问题是会在Cookie中生成两两个sessionId 一个是名为laravel_session的变量,还有一个是PHPSessionID