首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义约束不显示消息

自定义约束不显示消息
EN

Stack Overflow用户
提问于 2013-12-29 05:02:05
回答 1查看 500关注 0票数 0

this线程中,im与自定义验证器打架。谢谢stackoverflow用户,我可以做验证器的工作。现在,我不能这样做,显示错误。验证器类是:

代码语言:javascript
复制
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;
    }

}

在twig中,我编写了form_errors(myForm),但没有显示错误。验证器工作正常,但没有设置错误。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2013-12-30 04:16:13

请参阅Class Constraint文档。类约束被传递给一个对象,而不是一个简单的值。你在你的实体上设置了正确的注释吗?例如,

代码语言:javascript
复制
use My\Namespace\Validator\Constraints as MyAssertions;

/**
 * @MyAssertions\ExistEmailValidator
 *
 */
class MyEntity
{
    protected $id;

    protected $email;

    // etc...

}

在您的验证器中,您将收到一个MyEntity实例,您可以从中检索电子邮件值并对其进行验证。正如在上面的评论中提到的,您可能也想使用addViolationAt。

我希望这对你有所帮助,并且我正确地理解了你的情况。不过,我相信有更好的解释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20819344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档