Здравствуйте, целый день борюсь с одной ошибкой...
Мне кажется, что проблема в контроллере, но не пойму в чём именно проблема, помогите пожалуйста..
В одном экшине я использую две модели.. правильно ли это?
Или может ошибка совсем из за другого?
SiteController.php:
public function actionIndex()
{
/* Создаем экземпляр класса */
$model = new ContactForm();
$model->put_date = date('y-m-d');
$model->hide = 'show';
/* получаем данные из формы и запускаем функцию отправки contact, если все хорошо, выводим сообщение об удачной отправке сообщения на почту */
if ($model->load(Yii::$app->request->post()) && $model->save()) {
Yii::$app->session->setFlash('success', 'Спасибо за обращение к нам. Мы постараемся ответить вам как можно скорее');
return $this->refresh();
/* иначе выводим форму обратной связи */
}
if (!\Yii::$app->user->isGuest)
return $this->redirect(['/user/profile/index']);
$model = new SignupForm();
if ($model->load(\Yii::$app->request->post())) {
if ($model->signup() === true) {
return $this->render('success', [
'model' => $model,
]);
}
}
return $this->render('index', [
'model' => $model,
]);
}
И естественно в одной вьюхе использую две формы, одну для контактов а вторую для регистрации..
<?php $form = ActiveForm::begin([
'method' => 'POST',
'options' => [
'class' => 'form-inline',
]
]); ?>
<?= $form->field($model, 'username', ['inputOptions' => ['class' => 'form-control email']])->label(false) . $model->getAttributeLabel('Ваше Имя') ?>
<?= $form->field($model, 'email', ['inputOptions' => ['class' => 'form-control email']])->label(false) . $model->getAttributeLabel('Ваш E-mail') ?>
<?= $form->field($model, 'verifyCode')->widget(Captcha::className()) ?>
<?php if ($model->hasReferer() != null) { ?>
Вас пригласил <?= $model->getReferer()->getUsername() ?>
<?php } ?>
<input type="submit" class="submit" value="Регистрация">
<?php ActiveForm::end(); ?>
<div class="contact_from">
<?php if (Yii::$app->session->hasFlash('success')): ?>
<p class="success" id="success" style="display:none;"></p>
Спасибо за обращение к нам. Мы постараемся ответить вам как можно скорее
</p>
<?php else: ?>
<?php $form = ActiveForm::begin(['id' => 'contact_form']); ?>
<!-- Message Input Area Start -->
<div class="contact_input_area">
<div class="row">
<div class="col-md-12">
<div class="form-group">
<?= $form->field($model, 'name', ['inputOptions' => ['class' => 'form-control', 'id' => 'name']])->textInput(['placeholder' => "Ваше имя"])->label(false); ?>
</div>
</div>
<?= $form->field($model, 'email', ['inputOptions' => ['class' => 'form-control', 'id' => 'email']])->textInput(['placeholder' => "Ваш E-mail"])->label(false); ?>
<div class="col-md-12">
<div class="form-group">
<?= $form->field($model, 'subject', ['inputOptions' => ['class' => 'form-control', 'id' => 'subject']])->textInput(['placeholder' => "Тема сообщения"])->label(false); ?>
</div>
</div>
<div class="col-12">
<div class="form-group">
<?= $form->field($model, 'body', ['inputOptions' => ['class' => 'required valid', 'id' => 'message']])->textarea(['cols' => 30,'rows' => 4])->label(false); ?>
</div>
</div>
<div class="col-12">
<div class="form-group">
<?= $form->field($model, 'verifyCode')->widget(Captcha::className()) ?>
</div>
</div>
<div class="col-12">
<?= Html::submitButton(\Yii::t('app', 'Отправить'), ['class' => 'btn submit-btn']) ?>
</div>
</div>
</div>
<?php ActiveForm::end(); ?>
<?php endif; ?>