Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php yii中的验证规则_Php_Validation_Yii - Fatal编程技术网

Php yii中的验证规则

Php yii中的验证规则,php,validation,yii,Php,Validation,Yii,以下是验证规则 public function rules() { return array( // username and password are required array('oldPassword', 'required'), array('oldPassword', 'authenticate'), .... ); } pu

以下是验证规则

public function rules()
    {
        return array(
            // username and password are required
            array('oldPassword', 'required'),
            array('oldPassword', 'authenticate'),
                    ....
        );
    }
public function authenticate($attribute,$params)
{
    $this->userModel=User::model()->findByPk(Yii::app()->user->id);
    if($this->userModel!=null){
      if(!$this->userModel->validatePassword($this->oldPassword))
        $this->addError($attribute, "Incorrect current password");
    }
}

一切正常,但问题就在这里。。。当我将oldPassword保留为空时,将显示“必需”和“身份验证”的验证错误,而我希望显示第一个密码的错误消息,如果不为空,则显示后一个密码。

身份验证()中添加一个条件,以仅在
oldPassword
不为空时进行验证:

 public function authenticate($attribute, $params) {
      if ($this->oldPassword) {
          ...
      }
 }