yii缓存依赖引用器



我正在建立一个小型网店。这家商店有种类和产品。一个产品可以有多个类别。在productpage中,breadcrumb路径显示引用的类别名称(通过urlReferrer)。

我试图让Yii使用OutputCache逐页缓存,这取决于引用者(类别,因为这会改变面包屑轨迹)。

这是我的非工作过滤器:

public function filters() {
    return array(
        array(
            'COutputCache',
            'duration' => 3600,
            'varyByExpression' => array($this->getReferringCategory()),
            'varyByParam' => array('id','slug'),
            'dependency' => array(
                'class' => 'CDbCacheDependency',
                'sql' => 'SELECT MAX(date_updated) FROM product WHERE product_id = '.Yii::app()->request->getParam('id'),
            ),
        )
    );
}

有人对此有好办法吗?

致以最良好的问候,谢谢!

'varyByExpression'参数应该是PHP表达式(将由eval评估)或PHP回调(将由call_user_func_array()评估)

如果您使用php>=5.4.0,请尝试以下操作:

'varyByExpression' => function(){return $this->getReferringCategory();},

或者像这样,对于旧版本:

'varyByExpression' => '$this->getReferringCategory()',

最新更新