/**
  * @return \yii\db\ActiveQuery
  */
 public function getCarousel()
 {
     return $this->hasOne(WidgetCarousel::className(), ['id' => 'carousel_id']);
 }
示例#2
-1
 /**
  * @throws InvalidConfigException
  */
 public function init()
 {
     if (!$this->key) {
         throw new InvalidConfigException();
     }
     $cacheKey = [WidgetCarousel::className(), $this->key];
     $items = \Yii::$app->cache->get($cacheKey);
     if ($items === false) {
         $items = [];
         $query = WidgetCarouselItem::find()->joinWith('carousel')->where(['{{%widget_carousel_item}}.status' => 1, '{{%widget_carousel}}.status' => WidgetCarousel::STATUS_ACTIVE, '{{%widget_carousel}}.key' => $this->key])->orderBy(['order' => SORT_ASC]);
         foreach ($query->all() as $k => $item) {
             /** @var $item \common\models\WidgetCarouselItem */
             if ($item->path) {
                 $items[$k]['content'] = Html::img($item->getImageUrl());
             }
             if ($item->url) {
                 $items[$k]['content'] = Html::a($items[$k]['content'], $item->url, ['target' => '_blank']);
             }
             if ($item->caption) {
                 $items[$k]['caption'] = $item->caption;
             }
         }
         \Yii::$app->cache->set($cacheKey, $items, 60 * 60 * 24 * 365);
     }
     $this->items = $items;
     parent::init();
 }