/** * Returns corresponding slides with cache support(not real relation!) * @return Slide[] */ public function getSlides($onlyActive = false) { if ($this->_slides === null) { $this->_slides = Yii::$app->cache->get("Slides:" . $this->id); if (!is_array($this->_slides)) { $this->_slides = Slide::find()->where(['slider_id' => $this->id])->orderBy('sort_order ASC')->all(); Yii::$app->cache->set("Slides:" . $this->id, $this->_slides, 86400, new \yii\caching\TagDependency(['tags' => [ActiveRecordHelper::getObjectTag(Slide::className(), $this->id)]])); } } if ($onlyActive === true) { $activeSlides = []; foreach ($this->_slides as $slide) { if ($slide->active) { $activeSlides[] = $slide; } } return $activeSlides; } else { return $this->_slides; } }
/** * @return \yii\db\ActiveQuery */ public function getSlides() { return $this->hasMany(Slide::className(), ['common_status_id' => 'id']); }