我试图以下列方式使用Laravel 5缓存:
public function putUserCacheData($key, $value){
\Cache::put($this->login, [$key => $value], 30);
}
所以我有这样的结构
['testlogin'] => [
'param1' => 'value1',
'param2' => 'value2',
]
但是我可以使用密钥param1为缓存设置testlogin?
感谢您的帮助!
答案 0 :(得分:2)
尝试:
Cache::forget('testlogin.param1')
修改强>
你是对的 - 我们不能使用点符号。所以你能做的只有一件事是:
$testlogin = Cache::get('testlogin');
unset(testlogin['param1']);
Cache::put('testlogin', $testlogin);
答案 1 :(得分:1)
您可以使用缓存标记来执行此操作。
public function putUserCacheData($key, $value){
\Cache::tags($this->login)->put($key, $value, 30);
}
// Remove all entries
Cache::tags($this->login)->flush();
// Remove only param1
Cache::tags($this->login)->forget('param1');
但请注意,使用文件或数据库缓存驱动程序时不支持缓存标记。
答案 2 :(得分:-1)
不幸的是,你不能用划痕laravel 5. *。最好使用数据库,或者如果它的临时数据可以通过Sessions轻松完成:
Session::put('some', ['data' => 'value', 'key2' => 'value2']);
Session::forget('some.data');
return Session::get('some');