Задать вопрос
@xFreake

Как передать переменную в layouts/main.php?

Есть SiteController в нем функция
public function index(){
    $contactForm = new FooterForm();
    if ($contactForm->load(Yii::$app->request->post()) && $contactForm->validate()) {
        if ($contactForm->sendEmail()) {
            Yii::$app->session->setFlash('success', 'Спасибо - мы свяжемся с Вами в ближайшее время');
        } else {
            Yii::$app->session->setFlash('error', 'Произошла ошибка при отправке сообщения.');
        }

        return $this->refresh();
    }
    return [
        'contactForm' => $contactForm,
    ];
}

Если в main.php var_dump($contactForm); то получается ошибка

Undefined variable: contactForm

public_html/plitka/engine/frontend/themes/magichotel/views/layouts/main.php 176
  • Вопрос задан
  • 392 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 2
Я думаю, что $contactForm - это локальная переменная, которая будет уничтожена при выходе из функции. Чтобы передать ссылку на new FooterForm() присвойте её глобальной переменной
Ответ написан
Комментировать
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
В контроллере создаёте публичное свойство, например $test.
В действии контроллера присваиваете ей значение.
В layouts/main.php обращаетесь к ней так
$this->context->test
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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