单个帖子的yii2页面缓存

时间:2017-08-04 08:27:03

标签: yii2 page-caching

我通过yii2博客并使用页面缓存

    'class' => 'yii\filters\PageCache',
    'only' => ['view','video'],
    'duration' => 900,
    'dependency' => [
        'class' => 'yii\caching\DbDependency',
         'sql' => '?',
    ],

我的帖子表的主键为id; 如何将sql设置为每个帖子ID的单独页面缓存? 谢谢你。

1 个答案:

答案 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对非登录用户的请求,如果他们可以做一些评论和查看每个用户数据,则不希望缓存除获取或登录用户之外的其他请求(登录名等。)

如果您愿意,甚至可以使用更高级的配置。带有页面缓存的动态占位符,即使对于经过身份验证的用户也允许缓存,只需检查文档。