如何在自定义验证功能中使用电子邮件验证?

Shu*_*xit 1 php yii2

我创建了一个自定义验证功能.现在我想在该功能中验证电子邮件,我该怎么做?以下是我的代码:

public function rules()
{
    return [
        ['email', 'filter', 'filter' => 'trim'],
        ['email', 'required'],
        ['email', 'validateEmail'],
    ];
}

public function validateEmail($attribute, $params) {
    if(ctype_digit($this->email)){
        if(strlen($this->email)!=10)
            $this->addError($attribute,'Phone number should be of 10 digits');
    else{// Email validation using emailvalidator.}
    }

}
Run Code Online (Sandbox Code Playgroud)

top*_*her 6

您可以直接致电电子邮件验证员.这message是在validateAttribute使用时将添加到模型的错误消息.如果要使用默认错误消息,可以将其保留:

public function validateEmail($attribute, $params) {
    ...
    else {
        $emailValidator = new \yii\validators\EmailValidator();
        $emailValidator->message = "Invalid Email";
        $emailValidator->validateAttribute($this, $attribute));
    }
}
Run Code Online (Sandbox Code Playgroud)