如何获取当前操作参数?

时间:2017-02-08 13:22:49

标签: php caching parameters yii2 action

我正在使用yii\filters\PageCache过滤器来执行操作,并且我想根据操作参数定义缓存依赖项。

E.g。我想使用yii\caching\DbDependency从请求中选择updated_at行的id列。如何引用操作的id参数?

2 个答案:

答案 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//

我希望这会对你有所帮助