我试图通过使用注释约束" EqualTo"来验证两个电子邮件是否彼此相等。但是,EqualTo案例敏感,我们的很多用户都会用大小写字母写电子邮件。
因此,我是否正在努力实现这一目标。用户输入,通过略微编辑EqualTo功能并将其重命名为测试目的,以便#T; ToLowerEqualTo"。
约束:
/**
* @var string
* @Assert\NotBlank()
* @Assert\Length(max=100)
* @Assert\Email(
* message = "The email '{{ value }}' isn't valid",
* checkMX = false
* )
*/
public $email; // ( someemail@gmail.com)
/**
* @var string
* @Assert\NotBlank()
* @Assert\Length(max=100)
* @Assert\ToLowerEqualTo(
* "email",
* message = "The email '{{ value }}' doesn't match"
* )
*/
public $confirmEmail; // (SomeEmail@gmail.com)
ToLowerEqualToValidator:
protected function compareValues($value1, $value2)
{
$lowerValue1 = strtolower($value1);
$lowerValue2 = strtolower($value2);
return $lowerValue1 == $lowerValue2;
}
$ Value1正确等于SomeEmail@gmail.com $ Value2错误地等于"电子邮件",而不是" someemail@gmail.com"。
所以问题是,如何在ToLowerEqualTo约束函数中传递$ email变量?