Also versuche ich, Informationen über ein Yii2-Formular zu erhalten und in der Datenbank zu speichern, obwohl es nicht funktioniert. Ich erhalte die Erfolgsmeldung, aber es werden keine Änderungen in der Datenbank vorgenommen.Speichern von Formulardaten in die Datenbanktabelle YII2
Controller-Datei:
<?php
namespace frontend\modules\portfolio\controllers;
use Yii;
use yii\web\Controller;
use frontend\modules\portfolio\models\LandingPage;
use common\models\HelloMessage;
class HelloController extends Controller {
public function actionIndex() {
$form_model = new HelloMessage();
$request = Yii::$app->request;
if ($form_model->load(Yii::$app->request->post())) {
$form_model->name = $request->post('name');
$form_model->email = $request->post('email');
$form_model->message = $request->post('message');
$form_model->save();
Yii::$app->getSession()->setFlash('success', 'Your message has been successfully recorded.');
}
return $this->render('index', [
'form_model' => $form_model
]);
}
}
Und dies würde die Ansicht Datei sein:
<div class="box">
<?= Yii::$app->session->getFlash('success'); ?>
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($form_model, 'name')->textInput(['maxlength' => true]) ?>
<?= $form->field($form_model, 'email')->textInput(['maxlength' => true]) ?>
<?= $form->field($form_model, 'message')->textarea(['maxlength' => true]) ?>
<div class="form-group">
<?= Html::submitButton('Submit', ['name' => 'contact-button']); ?>
</div>
<?php ActiveForm::end(); ?>
</div>
Warum überprüfen Sie nicht, ob 'save()' 'true' zurückgegeben hat? – Bizley