【问题标题】:Model Validation Not Working模型验证不起作用
【发布时间】:2013-04-16 13:50:16
【问题描述】:

我有以下操作来处理注册

 $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

表单发布数据是

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

问题-:验证模型时没有错误。

【问题讨论】:

  • 您是否尝试过使用简单的用户名消息'message' =&gt; 'Invalid username/email format ' 而不是'message' =&gt; Yii::t('validation', 'Invalid username/email format ')..
  • 是的,试过了,没有成功。
  • 您的任何规则都有效??尝试使用必需的基本规则,如果不起作用,则问题出在您的模型数据上。..
  • 你在validate()之前尝试过使用$model-&gt;setScenario('checkout');吗?

标签: php validation model yii


【解决方案1】:

getErrors 会返回一个数组,你应该试试这个:

var_dump($model->getErrors());

print_r($model->getErrors());

PS : 你应该在 CActiveFormerrorSummary 中显示错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多