如何在自定义规则中验证电子邮件

时间:2020-09-23 09:44:59

标签: laravel

我使用Laravel。

我在用户名和电子邮件中使用相同的字段。此外,如果输入的是用户名或电子邮件,则用户必须选择。

如果类型是电子邮件,我想添加电子邮件验证。如果是用户名,则无需电子邮件验证。

我尝试使用if函数创建自定义规则。但是我该如何验证电子邮件?

class ValidateEmailRule implements Rule
{
    /**
     * Create a new rule instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Determine if the validation rule passes.
     *
     * @param  string  $attribute
     * @param  mixed  $value
     * @return bool
     */
    public function passes($attribute, $value)
    {
        if (request()->is_email) {
            //validate email ---here i need help to get the right code---
        }
        return true;
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message()
    {

        return 'The validation error message.';
    }
}
{{1}}

1 个答案:

答案 0 :(得分:0)

您不能只使用'email' => 'required_if:is_email:1吗?

编辑:

$rules = [
    'first_name' => 'required',
    'last_name' => 'required',
    'password' => 'required',
];

    if ($this->is_email) {
        $rules['email'] = 'email';
    }

    return $rules;