2012-04-04 8 views
1

こんにちは、私はphpとYiiフレームワークのウェブサイトを作成しています。今私は管理モジュールを作成し、このモジュールでcrudを作成しましたが、私はレコードを作成できないようです。私は今のところ持っていることは次のとおりです。php yiiフレームワークでレコードを作成できません

public function actionCreate() 
    { 
     $model=new GamesValidator; 

     // Uncomment the following line if AJAX validation is needed 
     $this->performAjaxValidation($model); 
     /* 
     if(isset($_POST['ajax']) && $_POST['ajax']==='games-form') 
     { 
      echo CActiveForm::validate($model); 
      Yii::app()->end(); 
     } 
     */ 
     if(isset($_POST['GamesForm'])) 
     { 
      die('GamesForm is set'); // just to see if GamesForm has some value! but website never shows this massege, it shows just new form, which is my problem. 
/* 
      $model->attributes=$_POST['GamesForm']; 
      if($model->validate()){ 
       echo ('This is only a test'); 
       return; 
      } else { 
       echo ('There was some error!'); 
       return; 
      } 
*/ 
     } 

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

が、それは何も表示されません何も全く行われなかったように、ウェブサイトは再びform.phpを示しています。ここに私のビューファイルの小さなコードです:

<div class="form"> 

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'games-form', 
    'enableAjaxValidation'=>true 
)); ?> 

<p class="note">Fields with <span class="required">*</span> are required.</p> 

<?php echo $form->errorSummary($model); ?> 
[..........................] 

<div class="row buttons"> 
    <?php echo CHtml::submitButton('Submit'); ?> 
</div> 

<?php $this->endWidget(); ?> 

</div><!-- form --> 

私は完全なコードを投稿することができませんが、それは長すぎます。

あなたは何が間違っているのか教えていただけますか?検証モデルにエラーがあるかどうかをチェックする方法は?

EDIT

が問題になる場所を示しました!

// you'll have to remove the die() of course, otherwise the rest of the code won't be executed 
if($model->validate()){ 
     echo ('This is only a test'); 
     // the next line is important to save records, we are passing false because validation is already done 
     $model->save(false); 
     return; 
    } else { 
     echo ('There was some error!'); 
     return; 
    } 

CActiveRecordのメソッドについての詳細を読む - :

答えて

3

シンプルな、あなたのcreate()方法で$model->save()が欠落しています。

編集

あなたのアプリの変更を表示するには、新たに作成されたレコードのビューを作成する必要があります。 yii自動生成コード(gii付き)では、CDetailViewによって実行されます。このビューには、モデルのインスタンスを渡すことができます。

+0

さらに詳しい説明が必要な場合はお知らせください。私の現在のソリューションでは、dbの変更を見ることができるはずですが、特定のビューを作成するまでは、アプリケーションの変更を見ることはできません。 –

+0

私はあなたが書いたとおりにしましたが、問題は再び同じです:ウェブサイトは「これは単なるテストです」ではなく、「何かエラーがありました」ではありません。私は何も投稿していないかのように簡単に新しいフォームをロードしました。それはフォームが全くPOSTしないことができますか? – Irakli

+1

@Irakli:検証エラーを表示するには、 'echo( 'いくつかのエラーがありました!');' var_dump($ model-> getErrors()); – DCoder

関連する問題