1

在 Yii 中重新加载页面时将数据插入数据库

我使用了两种模型:CNameCDetails单一形式。一切运作良好。除了,每当我重新加载或刷新该表单页面时,都会将空数据插入到数据库的两个表中。

这是控制器代码:

 public function actionCreate()
{
    $model=new CName;
    $model1=new CDetails;

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

    if(isset($_POST['CName'])
        && ($_POST['CDetails'])
    )
    {
        $model->attributes=$_POST['CName'];
        $model1->attributes=$_POST['CDetails'];

        $valid = $model->validate();
        $valid = $model1->validate() && $valid;

        if($valid)
        {
        if(!empty($model) && !empty($model1)){
         $model->save();
         $model1->save();
         $this->redirect(array('cprimary/create'));}
        }
    }

    $this->render('create',array(
        'model'=>$model,
        'model1'=>$model1,
    ));
}

现在,每当重新加载此页面时,都会在两个模型的表中插入空值。控制器出了什么问题?我检查了,但是,一切似乎都很好。拜托,任何评论或指示都会非常有帮助。

在此处输入图像描述

4

1 回答 1

0

首先^您可以摆脱这种情况:

if(!empty($model) && !empty($model1))

它没用,因为它总是非空的。

保存数据 - 您是否在模型规则中说明了所有字段?至少它们应该是“安全的”。

您也可以尝试转储错误:

var_dump($model->getErrors());
于 2014-08-19T09:51:53.907 回答