Yii2表单提交数据值未保存在数据库中

斯雷尼

我已经使用Yii2完成了Web应用程序,该表单提交的值未保存在数据库中。我只是使用模型+控制器+视图结构。实际上是在Mysql数据库中提交表单,但是当我访问数据库时,我只能看到所有条目的空白值

SiteController.php

<?php

namespace app\controllers;

use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\filters\VerbFilter;
use app\models\LoginForm;
use app\models\ContactForm;
use app\models\CanForm;
use app\models\UploadForm;

use yii\web\UploadedFile;

class SiteController extends Controller
{
    public function actionContact()
    {
        $model = new ContactForm();
        if ($model->load(Yii::$app->request->post())) {

          $model->name = $_POST['ContactForm']['name'];
          $model->email = $_POST['ContactForm']['email'];
          $model->subject = $_POST['ContactForm']['subject'];
          $model->body = $_POST['ContactForm']['body'];

           if ($model->save())
            Yii::$app->response->redirect(array('site/contact', 'model' => $model));
            return $this->refresh();
        } else {
            return $this->render('contact', [
                'model' => $model,
            ]);
        }
    }
}
}

Model:ContactForm.php


namespace app\models;

use Yii;
use yii\base\Model;

use yii\db\ActiveRecord;
/**
 * ContactForm is the model behind the contact form.
 */
class ContactForm extends \yii\db\ActiveRecord
{
    public $name;
    public $email;
    public $subject;
    public $body;
    public $verifyCode;

    /**
     * @return array the validation rules.
     */
    public function rules()
    {
        return [
            // name, email, subject and body are required
            [['name', 'email', 'subject', 'body'], 'required'],
            // email has to be a valid email address
            ['email', 'email'],
            // verifyCode needs to be entered correctly
            ['verifyCode', 'captcha'],
        ];
    }

    /**
     * @return array customized attribute labels
     */
    public function attributeLabels()
    {
        return [
            'verifyCode' => 'Verification Code',
        ];
    }

    /**
     * Sends an email to the specified email address using the information collected by this model.
     * @param  string  $email the target email address
     * @return boolean whether the model passes validation
     */
    public function contact($email)
    {
        if ($this->validate()) {
            Yii::$app->mailer->compose()
                ->setTo($email)
                ->setFrom([$this->email => $this->name])
                ->setSubject($this->subject)
                ->setTextBody($this->body)
                ->send();

            return true;
        } else {
            return false;
        }
    }
}
View:contact.php


    <div class="row">
        <div class="col-lg-5">
            <?php $form = ActiveForm::begin(['id' => 'contact-form']); ?>
                <?= $form->field($model, 'name') ?>
                <?= $form->field($model, 'email') ?>
                <?= $form->field($model, 'subject') ?>
                <?= $form->field($model, 'body')->textArea(['rows' => 6]) ?>
                <?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [
                    'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',
                ]) ?>
                <div class="form-group">
                    <?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
                </div>
            <?php ActiveForm::end(); ?>
钦迈·瓦格玛尔

根据您提供的代码,您似乎尚未将模型与数据库绑定。

将此函数添加到模型中:

public static function tableName()
{
    return 'your_table_name';
}

另外,您不必手动将每个值分配给模型。大量的工作为您做到了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Yii2:尚未将模型值保存在数据库中

来自分类Dev

Yii2图像名称未保存在数据库中,但保存在文件夹中

来自分类Dev

多文件上传+ textInput-不保存在数据库中(yii2)

来自分类Dev

值未保存在数据库中

来自分类Dev

HTML表单数据未保存在数据库中-Django

来自分类Dev

数据未保存在数据库中

来自分类Dev

yii框架在数据库中未保存的表单属性

来自分类Dev

Rails 4嵌套表单字段未保存在数据库中

来自分类Dev

根据我的报告,我的表单未保存在数据库中

来自分类Dev

文件上传操作期间,将数据保存在yii2中的数据库中

来自分类Dev

在文件上载操作期间将数据保存在yii2中的数据库中

来自分类Dev

多选选择未保存在数据库中

来自分类Dev

JSON日期未保存在数据库中

来自分类Dev

$ _SESSION未保存在数据库中

来自分类Dev

Codeigniter模型未保存在数据库中

来自分类Dev

上载的图像未保存在数据库中

来自分类Dev

从HTML表单中将值保存在数据库中

来自分类Dev

从html表单中将值保存在数据库中

来自分类Dev

DropdownList所选值未保存在数据库中

来自分类Dev

使用jquery的多个选择框值未保存在数据库中?

来自分类Dev

将空值保存在数据库中

来自分类Dev

将哈希值保存在数据库中

来自分类Dev

将文本保存在 yii2 中的数据库中

来自分类Dev

远程验证显示错误消息,但仍允许表单提交并保存在数据库MVC 5中

来自分类Dev

远程验证显示错误消息,但仍允许表单提交并保存在数据库MVC 5中

来自分类Dev

yii2复选框字段不在数据库中保存数据

来自分类Dev

HTML表单提交,数据未显示在数据库中

来自分类Dev

提交的数据未存储在数据库中

来自分类Dev

提交的数据未存储在数据库中

Related 相关文章

  1. 1

    Yii2:尚未将模型值保存在数据库中

  2. 2

    Yii2图像名称未保存在数据库中,但保存在文件夹中

  3. 3

    多文件上传+ textInput-不保存在数据库中(yii2)

  4. 4

    值未保存在数据库中

  5. 5

    HTML表单数据未保存在数据库中-Django

  6. 6

    数据未保存在数据库中

  7. 7

    yii框架在数据库中未保存的表单属性

  8. 8

    Rails 4嵌套表单字段未保存在数据库中

  9. 9

    根据我的报告,我的表单未保存在数据库中

  10. 10

    文件上传操作期间,将数据保存在yii2中的数据库中

  11. 11

    在文件上载操作期间将数据保存在yii2中的数据库中

  12. 12

    多选选择未保存在数据库中

  13. 13

    JSON日期未保存在数据库中

  14. 14

    $ _SESSION未保存在数据库中

  15. 15

    Codeigniter模型未保存在数据库中

  16. 16

    上载的图像未保存在数据库中

  17. 17

    从HTML表单中将值保存在数据库中

  18. 18

    从html表单中将值保存在数据库中

  19. 19

    DropdownList所选值未保存在数据库中

  20. 20

    使用jquery的多个选择框值未保存在数据库中?

  21. 21

    将空值保存在数据库中

  22. 22

    将哈希值保存在数据库中

  23. 23

    将文本保存在 yii2 中的数据库中

  24. 24

    远程验证显示错误消息,但仍允许表单提交并保存在数据库MVC 5中

  25. 25

    远程验证显示错误消息,但仍允许表单提交并保存在数据库MVC 5中

  26. 26

    yii2复选框字段不在数据库中保存数据

  27. 27

    HTML表单提交,数据未显示在数据库中

  28. 28

    提交的数据未存储在数据库中

  29. 29

    提交的数据未存储在数据库中

热门标签

归档