1

Yiiのページリロード時にデータベースにデータを挿入する

私は 2 つのモデルを使用しました:CNameCDetails1 つの形式です。すべてがうまくいっています。ただし、そのフォーム ページをリロードまたは更新するたびに、データベースの両方のテーブルに空のデータが挿入されます。

コントローラーコードは次のとおりです。

 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 に答える