Код в классе :
public function getRoutes()
{
return $this->hasMany(Route::className(), ['place_id' => 'id']);
}
Пытаюсь сделать кеширование вот так:
$db = self::getDb();
return $db->cache(function ($db){
return $this->hasMany(Route::className(), ['place_id' => 'id']);
});
ошибок не выдаёт, но и результат не кеширует.
Нашёл на просторах инета ещё вот такую вещь:
return $this->hasMany(Route::className(), ['place_id' => 'id'])->cache(60)->all();
Но она возвращает ошибку, хотя это было бы самое удобное использование кеширования...
UPD:
удалось сделать кеширование снаружи:
$place = Place::getDb()->cache(function ($db) use($hero) {
return Place::find()->where(['id' => $hero->location_id])->with('filteredRoutes')->asArray()->all();
}, 600);
Однако я хочу в relation прописать дополнительные фильтры, и не уверен что они будут правильно учитываться...