我是Laravel的新手。我使用Cache Facade缓存服务器上的一些数据,缓存驱动程序是" file"。下面是我的代码的一部分有问题:
// at the very beginning, forget the cache item, and run only once
if (Cache::has('votes_record')) {
Cache::forget('votes_record');
}
...
...
line 147 if (Cache::has('votes_record')) {
line 148 $votes_record = Cache::get('votes_record');
line 149 if (array_key_exists($input['From'], $votes_record)){
// do something here
}
} else {
// first time, create this array
$score = 0;
$votes_record = array(
$input['From'] => array(
'score' => $score,
)
)
Cache::put('votes_record', $votes_record, 60);
}
上面的代码(来自第147行)将多次运行,这是错误消息:exception 'ErrorException' with message 'array_key_exists() expects parameter 2 to be array, null given' in /app/Http/Controllers/VotesController.php:149
所以它说 $ votes_record 为空,但我检查第147行是否存在此Cache项,并且它通过了检查,这意味着Cache项存在,为什么它返回null第148行?
上面的错误并不是一直发生的,它看起来是随机发生的,当有很多请求调用这段代码时(来自第147行),
谢谢!