如何获取当前操作参数?
How do I get current action parameter?
我正在为我的操作使用 yii\filters\PageCache
过滤器,我想根据操作参数定义缓存依赖项。
例如我想使用来自请求的 id
行的 yii\caching\DbDependency
到 select updated_at
列。如何引用操作的 id
参数?
Yii::$app->request->get('id');
如果你想在你的缓存中添加依赖,那么试试这个
$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);
该代码将检查缓存中的数据(如果存在)将从缓存中加载,否则创建并缓存 it.it 还将检查您的 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//
希望对您有所帮助
我正在为我的操作使用 yii\filters\PageCache
过滤器,我想根据操作参数定义缓存依赖项。
例如我想使用来自请求的 id
行的 yii\caching\DbDependency
到 select updated_at
列。如何引用操作的 id
参数?
Yii::$app->request->get('id');
如果你想在你的缓存中添加依赖,那么试试这个
$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);
该代码将检查缓存中的数据(如果存在)将从缓存中加载,否则创建并缓存 it.it 还将检查您的 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//
希望对您有所帮助