我正在使用yii\filters\PageCache
过滤器来执行操作,并且我想根据操作参数定义缓存依赖项。
E.g。我想使用yii\caching\DbDependency
从请求中选择updated_at
行的id
列。如何引用操作的id
参数?
答案 0 :(得分:0)
Yii::$app->request->get('id');
答案 1 :(得分:0)
如果要在缓存中添加依赖项,请尝试使用
$db = Yii::$app->db; // or Category::getDb()
$dep = new DbDependency();
$dep->sql = 'SELECT max(update_at) FROM table';
$model = $db->cache(function ($db) {
return model::find()->asArray()->orderBy('id ASC')->all();
},expirytime, $dep);
代码将检查缓存中的数据(如果存在)将从缓存加载,否则创建它并缓存它。如果其值已更改,它还会检查您的update_at字段然后它将更新缓存,您不需要担心那个 如果你想在yii中访问当前的动作,那么试试这段代码
Yii::$app->controller->id; //will return current controller//
Yii::$app->controller->action->id; //will return current action//
Yii::$app->controller->module->id; //will return current module//
我希望这会对你有所帮助