Как правильно кэшировать ActiveQuery и ActiveRecord в Yii2?
Подскажите, пожалуйста, как всё же это делать? Ладно, если ActiveRecord запросы можно кэшировать как-то (и то сомневаюсь, что правильно), но вот ActiveQuery то как можно?
P.S. ActiveRecord кэширую так: общий ключ, сначала проверка данных, если нет, то получение данных и в кэш. Но вот при использовании через собственные запросы, можно просто cache() написать.
Андрей: да это и у меня работает. А попробуйте вот такое кэшировать:
$db = self::getDb();
$object = $db->cache(function ($db) {
return $this->hasOne(User::className(), ['id' => 'user_id']);
}, 1000);
return $object;
Артём: Так вы задайте вопрос правильно!
Вы хотите закешировать ActiveQuery а пишите про ActiveRecord
и определитесь, Вам "шашечки" или "ехать"
я так понимаю Ваш запрос можно переписать на DAO и закешировать..
и опять же.. сам Mysql должен кешировать запросы, если настроен....