Yii, PageCaching и множественные зависимости

1

Хорошо, поэтому я смотрел на кеширование с Yii, и у меня есть вопрос о кешировании страниц (http://www.yiiframework.com/doc-2.0/guide-caching-page.html).

PageController у меня есть контроллер PageController с двумя действиями, PageController::actionIndex() и PageController::actionView($id).

Мой массив behaviours() будет выглядеть примерно так:

'class' => 'yii\filters\PageCache',
'only' => ['index', 'view'],
'duration' => 3600,
'variations' => [
    \Yii::$app->language,
    \Yii::$app->user->id,
],
'dependency' => [
    'class' => 'yii\caching\DbDependency',
    'sql' => 'SELECT COUNT(*) FROM 'page' WHERE 'featured' = 1 AND 'deleted' = 0;',
],

Моя проблема в том, что у меня есть 2 действия, но зависимость для каждого из них отличается. Для индекса, я хочу сделать счет страницы, но для просмотра, я мог бы сделать выбор для last_updated.

SELECT last_updated FROM page WHERE id = 1;

Итак, как я могу сделать зависимости для каждого действия для кеширования страниц?

  • 0
    Вы пытались просто разделить это поведение на два поведения?
Теги:
caching
yii2
yii

1 ответ

1

Я не пробовал это, но вы просто должны быть в состоянии сделать

public function behaviors()
{
    return [
        [
            'class' => 'yii\filters\PageCache',
            'only' => ['index'],
            'duration' => 60,
            'variations' => [
                \Yii::$app->language,
            ],
            'dependency' => [
                'class' => 'yii\caching\DbDependency',
                'sql' => 'SELECT COUNT(*) FROM post',
            ],
        ],
        [
            'class' => 'yii\filters\PageCache',
            'only' => ['view'],
            'duration' => 60,
            'variations' => [
                \Yii::$app->language,
            ],
            'dependency' => [
                'class' => 'yii\caching\DbDependency',
                'sql' => 'SELECT last_updated FROM page WHERE id = 1',
            ],
        ],
    ];
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню