简体   繁体   中英

data inserting into database on page reload in Yii

data inserting into database on page reload in Yii

I have used two models: CName and CDetails in a single form. All is working well. Except, whenever I reload or refresh that form page, empty data is being inserted into the both tables of the database.

here's the controller code:

 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,
    ));
}

Now, whenever this page is reloaded, empty values are being inserted on the both model's tables. What is going wrong on the controller? I checked, but, everything seems okay. Please, any comment or instruction would be very helpful.

在此处输入图片说明

First of all^ you can get rid of this condition:

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

it's useless as it's always nonempty.

Saving data - do you have all fields stated in the rules of the models? At least they should be 'safe'.

Also you can try to dump the errors:

var_dump($model->getErrors());

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM