Yii2 ActiveRecord cache

后端 未结 3 1225
春和景丽
春和景丽 2020-12-17 03:03

How to use ActiveRecotd cache for Yii 2? I did\'t find any examples in official docs. In Google I found 2 examples, first is:

$db = self::getDb();
$object =          


        
3条回答
  •  独厮守ぢ
    2020-12-17 03:39

    1) Use cache like that:

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

    2) If you may use query dependency, use like that:

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

提交回复
热议问题