http://www.yiiframework.com/doc-2.0/guide-caching-fragment.htmlYii2 Кэширование фрагмента для GridView
Мой код:
$dependency = [
'class' => 'yii\caching\DbDependency',
'sql' => 'SELECT MAX(updated_at) FROM converter_operator_device;',
];
$variations = [
[\Yii::$app->request->absoluteUrl, \Yii::$app->user->isGuest],
];
if ($this->beginCache('table-connection',['dependency' => $dependency, 'variations' => $variations])) {
// here gridView.
}
Когда фрагмент кэшируется затем фильтры GridView не работает, потому что нужно GridView расслоение плотной. Как исправить?
UPD: добавить перед тем кэшем код:
$this->registerJs("$('#table-connection').yiiGridView({'filterUrl':document.URL,'filterSelector':'#table-connection-filters input, #table-connection-filters select'})");
GridViewAsset::register($this);
Это работает, но как отслеживать нагрузку кэша?
Я пробовал, но сценарий js является динамическим. См. Https://github.com/yiisoft/yii2/blob/master/framework/grid/GridView.php#L281. Я попробовал '$ ('# table-connection'). YiiGridView ('applyFilter');' но получить ошибку с соответствующими параметрами begin init ... Легче отключить кеширование и перейти в другую сторону. Но это не решение :) –
Я обновил вопрос. –
Я не уверен, что получаю ваш обновленный вопрос. –