【发布时间】:2016-06-22 02:53:18
【问题描述】:
我正在尝试创建将检查指定服务器的状态并将此状态放入缓存的中间件,但缓存在中间件中无法正常工作,当我尝试检查密钥时缓存值始终为空存在等等。
public function handle($request, Closure $next)
{
$response = $next($request);
if(!Cache::has(Config::get('ots.server_status_cache_name'))) {
if($this->checkServerStatus()) {
Cache::put(Config::get('ots.server_status_cache_name'), 1, Config::get('ots.server_status_cache_time'));
} else {
Cache::put(Config::get('ots.server_status_cache_name'), 0, Config::get('ots.server_status_cache_time'));
}
}
return $response;
}
请注意,$this->checkServerStatus() 返回 true/false。
因此,当我尝试检查缓存键是否存在时,Cache::has("KEY") 始终为 false 或 Cache::get("KEY") 为 null。
怎么了?我不能在中间件中使用缓存?
【问题讨论】:
标签: php arrays laravel caching laravel-middleware