Помогите, пожалуйста, разобраться с кэшированием по условию (TagDependence).
Хочу сделать кэширование личных данных пользователя (ФИО).
Логика такая:
1) в компоненте UsersAuthComponent в методе getUserById устанавливаю кэш по TagDependency.
Код: Выделить всё
public function getUserById($id)
{ // получить запись (ActiveRecord) пользователя User по id
return $this->getModel()::find()
->andWhere(['id' => $id])
->cache(null, new TagDependency(['tags' => 'current_user' . \Yii::$app->user->id]))
->one();
}
Код: Выделить всё
public function editUser($model)
{ // обновить данные пользователя
if (!$model->validate(['fio'])) {
return false;
}
if (!$model->update()) {
return false;
}
TagDependency::invalidate(\Yii::$app->cache, 'current_user'. \Yii::$app->user->id);
return true;
}
На деле, всё происходит не так - в БД поле обновляется, а на странице пользователя нет (выводится из кэша).
Уже потратил несколько часов, чтобы разобраться, но ответа так и не нашел. Что я делаю не так?