只是原生 php 中的一个简单函数
protected function some_function(){
session_start();
if(!isset($_SESSION['a']))
{
$_SESSION['a'] = 'some value';
return true;
} else {
return $_SESSION['a'];
}
}
在第一次运行时,它将返回 bool(true),然后"some value"
按预期返回。
将相同的应用于 laravel 会话,
protected function some_function(){
$a = Session::get('abc');
if(is_null($a)){
Session::put('abc', 'some value');
//return Session::get('abc');
return true;
} else {
return $a;
}
}
按照逻辑,在第一次运行时, $a 将是null
. 然后"some value"
输入abc
key 并按预期返回 bool(true) 。
但是,在随后的访问中,Session::get('abc')
每次都返回 null。所以每次尝试都会返回 bool(true)。
我认为可能是会话没有正确写入,所以我在设置后立即检查了获取键值。
通过注释掉上面代码中的行,它返回我输入的任何值Session::put('abc')
。所以写入数据没有错误。
这里的问题是尝试检索始终返回的值,null
尽管我在第一个请求之后设置。
我在这里错过了什么吗?
编辑
使用数据库作为驱动程序,会话不会保存在数据库中。没有错误输出。文档中描述的会话表模式的数据库实现是正确的。