我通过yii2博客并使用页面缓存
'class' => 'yii\filters\PageCache',
'only' => ['view','video'],
'duration' => 900,
'dependency' => [
'class' => 'yii\caching\DbDependency',
'sql' => '?',
],
我的帖子表的主键为id; 如何将sql设置为每个帖子ID的单独页面缓存? 谢谢你。
答案 0 :(得分:1)
只需将当前ID传递给它,是的,你可以这样做,使用enabled属性和这样的变体
[
'enabled' => Yii::$app->request->isGet && Yii::$app->user->isGuest,
'class' => 'yii\filters\PageCache',
'only' => ['index'],
'duration' => 900,
'variations' => [
Yii::$app->request->get('id')
]
]
这确保了它只会缓存每个帖子ID对非登录用户的请求,如果他们可以做一些评论和查看每个用户数据,则不希望缓存除获取或登录用户之外的其他请求(登录名等。)
如果您愿意,甚至可以使用更高级的配置。带有页面缓存的动态占位符,即使对于经过身份验证的用户也允许缓存,只需检查文档。