在this线程中与自定义验证器对战。感谢stackoverflow用户,我可以使用验证器。现在,我不能这样做显示错误。 验证器类是:
class ExistEmailValidator extends ConstraintValidator
{
protected $userService;
public function setUserService($us) {
$this->userService = $us;
}
public function validate($value, Constraint $constraint)
{
if($this->userService->existUserEmail($value) == false){
$this->context->addViolation($constraint->message, array('%string%' => $value));
}
}
public function getTargets(){
return self::CLASS_CONSTRAINT;
}
}
在树枝上我写form_errors(myForm)
,但错误没有显示。验证器工作正常,但没有设置错误。
有什么想法吗?
答案 0 :(得分:0)
请参阅Class Constraint文档。类约束传递的对象不是简单的值。您是否在实体上设置了正确的注释?例如,
use My\Namespace\Validator\Constraints as MyAssertions;
/**
* @MyAssertions\ExistEmailValidator
*
*/
class MyEntity
{
protected $id;
protected $email;
// etc...
}
在您的验证器中,您将收到一个MyEntity实例,您可以从中检索电子邮件值并对其进行验证。如上面的评论所述,您可能也想使用addViolationAt。
我希望这有助于我正确理解你的情况。我确信那里有更好的解释。