2013-04-16 168 views
0

我有以下行動處理註冊
模型驗證工作不

$model=new User('checkout'); 
     if(!empty($_POST['User'])){ 

      $model->attributes = $_POST['User']; 
      //echo '<pre>';echo $model->username;die; 
      $model->validate(); 
      echo $model->getErrors(); die; 
     } 
     $this->render('register',array('model'=>$model)); 

和模型規則

array('username', 'required', 'on' => 'checkout','message' => Yii::t('validation', 'Email can not be blank.')), 
      array('username', 'unique', 'on' => 'checkout', 'message' => Yii::t('validation', 'Email has already been taken.')), 

      array('username', 'unique'), 
      array('passwordConfirm', 'required', 'on' => 'checkout','message' => Yii::t('validation', 'Confirm password can not be blank')), 
      array('username', 'email', 'message' => Yii::t('validation', 'Invalid username/email format ')), 
      //comapre passwords 

表單POST數據是

Array 
(
    [fname] => hemc 
    [lname] => k 
    [username] => demo 
    [dob] => 
    [password] => 
    [passwordConfirm] => 
    [agree] => 0 
) 

問題 - :有在驗證模型時沒有錯誤。

+0

你嘗試使用簡單''message'=>'無效的用戶名/電子郵件格式''而不是'message'=> Yii :: t('validation','Invalid username/email forma t')'.. – saveATcode

+0

是的,嘗試過,沒有成功。 – Hemc

+0

你的任何規則正在工作?嘗試使用所需的基本規則,如果不工作,那麼問題與您的模型數據有關。 – saveATcode

回答

2

getErrors會返回一個數組,你應該試試這個:

var_dump($model->getErrors()); 

print_r($model->getErrors()); 

PS:你應該在你的CActiveForm與顯示錯誤errorSummary

+0

Thankx Soju。這真是一個愚蠢的錯誤。 – Hemc