Laravel按子键缓存清除参数

时间:2016-06-08 10:24:37

标签: laravel laravel-5 laravel-5.2

我试图以下列方式使用Laravel 5缓存:

public function putUserCacheData($key, $value){
    \Cache::put($this->login, [$key => $value], 30);
}

所以我有这样的结构

    ['testlogin'] => [
                  'param1' => 'value1',
                  'param2' => 'value2',
                 ]

但是我可以使用密钥param1为缓存设置testlogin?

感谢您的帮助!

3 个答案:

答案 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');