它';It’我没有验证我的表单数据


it's not validating my form data

我有这样的形式

我的表单

  <?php
   $error = $model->getErrors();
   print_r($error);
   <form method="post" action="<?php echo Yii::app()->getBaseUrl(true).'/index.php/admin/user/resetpassword'?>" enctype="multipart/form-data">
     <div class="row">
       <label>Old Password</label><input type="password" name="oldpassword" value="<?php echo $model->email; ?>"/><span><?php if(isset($error['email'])) echo $error['email'][0]; ?></span>
    </div> 
    <div class="row">
      <label>New Password</label><input type="password" name="newpassword"/><span><?php if(isset($error['password'])) echo $error['password'][0]; ?></span>
    </div>
    <div class="row">
      <label>Repeat Password</label><input type="password" name="repeatpassword" value="<?php echo $model->employeeid; ?>"/><span><?php if(isset($error['employeeid'])) echo $error['employeeid'][0]; ?></span>
    </div>
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Reset Password' : 'Save'); ?>
 </form>

我的模型类是

   class User extends CActiveRecord
   {
    public $oldpassword;
    public $newpassword;
    public $repeatpassword;
    /**
 * @return string the associated database table name
 */
public function tableName()
{
    return 'user';
}
    /**
 * @return array validation rules for model attributes.
 */
public function rules()
{
    // NOTE: you should only define rules for those attributes that
    // will receive user inputs.
    return array(
        array('email, password, employeeid, designation, manager, profilepic', 'required','except'=>'resetpassword'),
                   array('email','email'),              array('profilepic','file','types'=>'jpg,jpeg,png','allowEmpty'=>true,'on'=>'update'),
                    array('email,employeeid','unique'),
                    array('newpassword, repeatpassword, oldpassword','required','on'=>'resetpassword'),
                    array('repeatpassword','compare','compareAttribute'=>'newpassword','on'=>'resetpassword'),
        array('email, password, employeeid, designation, manager, profilepic', 'safe', 'on'=>'search'),
    );
}

我的控制器功能

     public function actionResetPassword()
    {
        $model = new User('resetpassword');
        if(Yii::app()->request->isPostRequest)
        {
            if($model->validate())
                $this->redirect(array('resetpassword','msg'=>'Password successfully changed..'));
        }
        $this->render('resetpassword',array('model'=>$model));
    }

它总是给出错误,比如CCD_ 1,即使已经输入了值。。

有人能帮我吗

提前感谢

这是因为您没有将表单值分配给模型变量。。。

在你的控制器中试试这个

   if(Yii::app()->request->isPostRequest)
        {
            $model->oldpassword=$_POST['oldpassword']; //will set to model variable
            $model->newpassword=$_POST['newpassword'];
            $model->repeatpassword=$_POST['repeatpassword'];
            if($model->validate())
                $this->redirect(array('resetpassword','msg'=>'Password successfully changed..'));
        }

希望它能解决你的问题

正如Kalpit上面提到的,您没有将表单输入分配给您的模型实例。你也可以这样解决这个问题。。

$model = new User;
if(isset($_POST['resetpassword']))
{
    $model->attributes=$_POST['resetpassword'];
    if($model->save())
   // successfully saved, do something here
}