gpt4 book ai didi

caching - Yii2 ActiveRecord 缓存

转载 作者:行者123 更新时间:2023-12-02 16:06:54 25 4
gpt4 key购买 nike

如何在 Yii 2 中使用 ActiveRecotd 缓存?我在官方文档中没有找到任何示例。在 Google 中我找到了 2 个例子,第一个是:

$db = self::getDb();
$object = $db->cache(function ($db) use($id) {
return self::findOne($id);
});

但它不适用于模型,我使用更新的框架进行了测试。其他例子是:

$data = \Yii::$app->cache->get('some_var_' . $id);
if ($data === false)
{
$data = self::findOne($id);
\Yii::$app->cache->set('some_var_' . $id, $data, 60);
}

它工作正常,但它不是 ActiveRecord 缓存,而是数据缓存,所以我们在 Yii 2 中还没有 ActiveRecord 缓存?

最佳答案

1)像这样使用缓存:

$db = Yii::$app->db;// or Category::getDb()
$result = $db->cache(function ($db) use ($id) {
return Category::find()->where(['id' => $id])->all();
}, CACHE_TIMEOUT);

2)如果您可以使用查询依赖项,请像这样使用:

$db = Yii::$app->db;// or Category::getDb()
$dep = new DbDependency();
$dep->sql = 'SELECT count(*) FROM category';
$result = $db->cache(function ($db) use ($id) {
return Category::find()->where(['id' => $id])->all();
}, CACHE_TIMEOUT, $dep);

关于caching - Yii2 ActiveRecord 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29854882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com