kimono
@kimono
Web developer

Есть ли возможность в Yii2 проверить, что такой же виджет уже был проинициализирован во вьюшке?

Есть определенный виджет, который при запуске регистрирует необходимый ассет и рендерит необходимый html код. Примерный код такой:
public function run() {
  Blueimp_BootstrapImageGalleryAsset::register($this->view);
  return $this->renderItems()."\n".$this->renderControls();
}

Если на странице будет несколько таких виджетов, то получается, что код продублируется. Как можно проверить, что этот виджет уже был на странице? Нужно нечто вроде:
public function run() {
  $html = [];
  if (!$this->view->HAVE_VIDGET($this)){
    Blueimp_BootstrapImageGalleryAsset::register($this->view);
    $html[] = $this->renderControls();
  }
  $html[] = $this->renderItems();
  return implode("\n", $html);
}
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 1
bitver
@bitver
Ответ на вопрос - статические свойства.
А то, что вы 100500 раз зарегистрируете ассеты - ничего страшного, они в итоге будут 1 раз использованы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы