我使用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}}
答案 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;