如何在yii2 AR中清除缓存?

lol*_*lka 6 yii2

如何清除当前数据的缓存?

$result = Customer::getDb()->cache(function ($db) use ($id) {
    return Customer::findOne($id);
}, 60 * 60 * 24 * 4);
Run Code Online (Sandbox Code Playgroud)

我希望在更新后清除Customer中当前数据的缓存

Biz*_*ley 7

您可以修改此代码以使用数据缓存而不是查询缓存,以便您可以使用唯一键.

$data = $cache->get('customer' . $id);
if ($data === false) {
    $data = Customer::findOne($id);
    $cache->set('customer' . $id, $data, 60 * 60 * 24 * 4);
}
Run Code Online (Sandbox Code Playgroud)

或者从2.0.11开始:

$data = $cache->getOrSet('customer' . $id, function () use ($id) {
    return Customer::findOne($id);
}, 60 * 60 * 24 * 4);
Run Code Online (Sandbox Code Playgroud)

所以现在你可以使用了

$cache->delete('customer' . $id);
Run Code Online (Sandbox Code Playgroud)