Yii2: как кешировать активный провайдер данных?

В моей модели PostSearch у меня есть этот код:

public function search($params)
{
    $query = Post::find()->where(['status' => 1]);

    $dataProvider = new ActiveDataProvider([
        'query' => $query,
        'sort'=> ['defaultOrder' => ['id' => SORT_DESC]],
        'pagination' => [
            'pageSize' => 10,
        ]
    ]);

    if (!($this->load($params) && $this->validate())) {
        return $dataProvider;
    }

    $query->andFilterWhere([
        'id' => $this->id,
        'status' => $this->status,
    ]);

    $query->andFilterWhere(['like', 'title', $this->title])
        ->andFilterWhere(['like', 'text', $this->text]);

    return $dataProvider;

моя попытка, вместо вышеупомянутой линииreturn $dataProvider, будет этот блок кода:

$dependency = [
    'class' => 'yii\caching\DbDependency',
    'sql' => 'SELECT MAX(updated_at) FROM post',
];

$result = self::getDb()->cache(function ($db) {
    return $dataProvider;
}, 3600, $dependency);

return $result

Я хотел бы кэшировать результат, возвращаемый ADP, на основе поля updated_at. Я имею в виду, что я хочу обслуживать данные из кеша, пока не произойдут некоторые изменения. Мой код не работает, я имею в виду, кеширование вообще не применяется. Что я делаю не так, и возможно ли это сделать на ADP? Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос