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

时间:2014-08-19 09:26:36

标签: php forms yii model multi-model-forms

数据插入数据库页面重新加载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,
    ));
}

现在,无论何时重新加载此页面,都会在两个模型的表上插入空值。控制器出了什么问题? 我查了一下,但是,一切似乎都没问题。请,任何评论或指示都会非常有用。

enter image description here

1 个答案:

答案 0 :(得分:0)

首先,你可以摆脱这种情况:

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

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

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

您也可以尝试转储错误:

var_dump($model->getErrors());