In my PostSearch model I have this 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;
// my try, instead of above line "return $dataProvider", would be this block of code:
// $dependency = [
// 'class' => 'yii\caching\DbDependency',
// 'sql' => 'SELECT MAX(updated_at) FROM post',
// ];
// $result = self::getDb()->cache(function ($db) {
// return $dataProvider;
// }, 3600, $dependency);
// return $result
}
I would like to cache the result returned by ADP, based on the updated_at field. I mean I want to serve data from cache until some change is made. My code try is this commented out block of code. It does not work, I mean caching is not applied at all. What I am doing wrong, and is it possible to do this on ADP ? Thanks