Yii2 ActiveRecord缓存

亚历克斯

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

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

但这不适用于Model,我使用更新的框架进行了测试。其他示例是:

$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缓存吗?

vitalik_74

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);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在yii2 ActiveRecord中使用查询缓存

来自分类Dev

如何在yii2 ActiveRecord中使用查询缓存

来自分类Dev

Yii2资产清除缓存

来自分类Dev

Yii2 activerecord定制属性

来自分类Dev

Yii2 ActiveRecord统计关系

来自分类Dev

Yii2 ActiveRecord模型最佳实践

来自分类Dev

ActiveRecord批处理插入(yii2)

来自分类Dev

ActiveRecord插入空字段Yii2

来自分类Dev

Yii2 - ActiveRecord 验证与表单验证

来自分类Dev

Yii ActiveRecord 中的 beforeFind() 和缓存

来自分类Dev

如何在Yii2中打开HTTP缓存?

来自分类Dev

在yii2中使用memcache缓存值

来自分类Dev

如何在Yii2中禁用资产缓存?

来自分类Dev

在yii2中使用memcache缓存值

来自分类Dev

如何在Yii2中更改资产缓存目录?

来自分类Dev

如何在Yii2中打开HTTP缓存?

来自分类Dev

Yii2 - 从控制台使用 APC 缓存

来自分类Dev

yii2 ActiveRecord通过计算查找订单

来自分类Dev

使用ActiveRecord的Yii2查询生成器

来自分类Dev

如何在Yii2 ActiveRecord中获取属性标签

来自分类Dev

Yii2 ORDER BY用于ActiveRecord中的关系数据

来自分类Dev

Yii2下拉菜单不同的Activerecord

来自分类Dev

Yii2 ActiveRecord:复合输入条件

来自分类Dev

PHP Yii2 ActiveRecord使用嵌套where条件

来自分类Dev

如何在yii2的ActiveRecord中编写表别名

来自分类Dev

Yii2使用ActiveRecord调用显示表状态

来自分类Dev

Yii2 ActiveRecord FindOne() 不带参数/s

来自分类Dev

Yii2 find with ActiveRecord 返回简单的属性数组

来自分类Dev

Yii2 使用 ActiveRecord 删除所有相关记录