Задать вопрос
@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
  • Вопрос задан
  • 387 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Я думаю, что $contactForm - это локальная переменная, которая будет уничтожена при выходе из функции. Чтобы передать ссылку на new FooterForm() присвойте её глобальной переменной
Ответ написан
Комментировать
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
В контроллере создаёте публичное свойство, например $test.
В действии контроллера присваиваете ей значение.
В layouts/main.php обращаетесь к ней так
$this->context->test
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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