Yii2: Wie wird ein aktiver Datenprovider zwischengespeichert?

In meinem PostSearch-Modell habe ich diesen Code:

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;

Mein Versuch, anstatt über der Liniereturn $dataProvider, wäre dieser Codeblock:

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

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

return $result

Ich möchte das von ADP zurückgegebene Ergebnis basierend auf dem Feld updated_at zwischenspeichern. Ich meine, ich möchte Daten aus dem Cache bereitstellen, bis eine Änderung vorgenommen wird. Mein Code funktioniert nicht, ich meine, Caching wird überhaupt nicht angewendet. Was mache ich falsch, und ist es möglich, dies auf ADP zu tun? Vielen Dan

Antworten auf die Frage(2)

Ihre Antwort auf die Frage