@LightSid

Как перезагрузить страницу actionIndex из виджета Yii2?

Подскажите пожалуйста, как можно перезагрузить основную страницу из тела виджета?
return $this->refresh(); не работает, я так понимаю он перезагружает код виджета, а нужно всю страницу.
  • Вопрос задан
  • 2808 просмотров
Решения вопроса 2
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
1. Главный вопрос зачем? Это не есть правильно. Опишите полную задачу, может быть есть другой выход.
2. Если посмотреть метод контроллера refresh, то увидим:
public function refresh($anchor = '')
    {
        return Yii::$app->getResponse()->redirect(Yii::$app->getRequest()->getUrl() . $anchor);
    }

А значит не так уж и нужен refresh(), который из виджета не доступен.

Не в тему, но на будущее:
$this в виджете экземпляр виджета
$this->getView() в виджете экземпляр View
$this->getView()->context некоторые данные из контроллера, например публичные переменные
Ответ написан
iiifx
@iiifx
PHP, OOP, SOLID, Yii2, Composer, PHPStorm
Не делайте так, как вы хотите. Рефреш нужно делать в контроллере, не в виджете, не в модели.

Но если вам очень-очень хочется, то пожалуйста:
Yii::$app->getResponse()->redirect( $url )->send(); # Укажите ссылку
Yii::$app->end();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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