Light777
@Light777
Developer

Почему не рендерится вьюшка в Yii2?

Почему при нажатии кнопки ОТПРАВИТЬ вьюшка не меняется?
Письмо создается в папке runtime/mail
В логах написано что редиректится на thanks.php, а на самом деле ничего не происходит

Код контактной формы во вьюшке contact.php
<?php $form = ActiveForm::begin(['id' => 'contact-form',
                'options' => ['class' => 'contact-form page-margin-top'],]); ?>
                <div class="row">
                    <fieldset class="column column-1-2">

                        <?= $form->field($model, 'name')->label(false) ?>

                        <?= $form->field($model, 'email')->label(false) ?>

                        <?= $form->field($model, 'subject')->label(false) ?>
                    </fieldset>
                    <fieldset class="column column-1-2">

                        <?= $form->field($model, 'body')->textArea(['rows' => 6])->label(false) ?>
                    </fieldset>
                </div>
                <div class="row margin-top-30">
                    <div class="column column-1-2">
                        <p class="description t1">Наш менеджер свяжется с Вами в ближайшее время</p>
                    </div>
                    <div class="column column-1-2 align-right">
                        <?= Html::submitInput('ОТПРАВИТЬ', ['class' => 'more active', 'name' => 'submit']) ?>
                    </div>
                </div>

                <?php ActiveForm::end(); ?>


Код контроллера
public function actionContact()
    {
        $model = new ContactForm();
        if ($model->load(Yii::$app->request->post()) && $model->validate()) {
            if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
                //$this->redirect(Url::toRoute('/site/index'));
                Yii::trace('start calculating average revenue');
                return $this->render('thanks');               
               // Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.');
            } else {
                Yii::$app->session->setFlash('error', 'There was an error sending email.');
            }

           // return $this->refresh();
        } else {
            return $this->render('contact', [
                'model' => $model,
                ]);
        }
    }

Лог
24ac4ac4e7f141688e7c2cec3d068975.PNG
  • Вопрос задан
  • 553 просмотра
Пригласить эксперта
Ответы на вопрос 1
Попробуйте заменить в контроллере это:
return $this->render('thanks');

На показ вот таким образом.
// показывает файл "@app/views/site/license.php"
echo \Yii::$app->view->renderFile('@app/views/site/license.php');
Ответ написан
Ваш ответ на вопрос

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

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