使用Symfony2约束传递变量

时间:2015-10-29 13:28:19

标签: symfony annotations constraints

我试图通过使用注释约束" 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变量?

0 个答案:

没有答案