Symfony2自定义验证限制了表单构建器中的使用

antanas_sepikas

我尝试创建自定义验证规则,以在构建以下表单时使用:example

这是我来的:

namespace Path\ToBundle\Validator\Constraints;

use Symfony\Component\Validator\Constraint;

/**
 * @Annotation
 */
class NotValidSearch extends Constraint
{
    public $message = 'Search string is invalid format.';
}



namespace Salda\ClientControlBundle\Validator\Constraints;

use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;


class ContainsNotValidSearchValidator extends ConstraintValidator
{
    public function validate($value, Constraint $constraint)
    {
        if (count(explode(' ', $value)) !== 3) {
            $this->context->addViolation($constraint->message);
        }
    }
} 

然后尝试在表单构建器类中使用它:

use Path\ToBundle\Validator\Constraints\NotValidSearch;

$builder->add('search', 'search', array(
    'label' => 'Predecessor',
    'required' => false,
    'mapped' => false,
    'constraints' => new NotValidSearch(array(
        'message' => 'invalid message ph'
    ))
));

但是当我提交表单时,它引发错误:致命错误:在/ path / to / vendor / symfony / symfony / src / Symfony / Bundle / FrameworkBundle / Validator /中找不到/ Path / ToBundle \ Validator \ Constraints \ NotValidSearchValidator类第71行的ConstraintValidatorFactory.php

我的问题是:我是否误解了如何使用自定义验证器,或者我只是丢失了某些东西或做错了?因为在构建表单时我不想在其中使用它,因为我需要在非映射属性上使用它。这是执行此操作的适当方法吗?或者还有其他方法吗?

Qooplmao

在基Symfony\Component\Validator\Constraint类中,有validatedBy方法

public function validatedBy()
{
    return get_class($this).'Validator';
}

意味着您的班级NotValidSearch将由NotValidSearchValidator而不是您选择的班级进行验证ContainsNotValidSearchValidator

您将需要将验证器的名称更改为NotValidSearchValidator或将validatedBy更改为验证器的正确名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Symfony2自定义按钮

来自分类Dev

Symfony2自定义表单字段类型HTML5颜色

来自分类Dev

在Symfony中自定义JMSPaymentCoreBundle表单

来自分类Dev

在symfony2表单构建器中访问底层实体

来自分类Dev

Symfony2:如何对自定义复合表单类型使用约束?

来自分类Dev

symfony2中的自定义异常行为

来自分类Dev

symfony2表单渲染自定义

来自分类Dev

Symfony2-使用自定义身份验证器的Twig模板中的用户名和角色

来自分类Dev

自定义symfony2嵌入表单模板

来自分类Dev

symfony2自定义验证器FatalErrorException

来自分类Dev

使用自定义查询构建器的ManyToMany实体的Symfony表单

来自分类Dev

使用symfony2中的树枝形式验证表单是否为空/未定义

来自分类Dev

如何在Symfony2 / 3中基于用户角色自定义表单字段?

来自分类Dev

在symfony表单类型中使用自定义约束/验证器

来自分类Dev

Symfony2自定义表单渲染器助手功能

来自分类Dev

在symfony2中使用DQL从Entity获取自定义getter值

来自分类Dev

Symfony2自定义按钮

来自分类Dev

自定义身份验证提供程序中的Symfony2 ContextErrorException

来自分类Dev

Symfony2:如何对自定义复合表单类型使用约束?

来自分类Dev

Symfony2自定义表单,替换属性,值和主题

来自分类Dev

Symfony2自定义表单类型或扩展名

来自分类Dev

自定义Symfony2表单

来自分类Dev

Symfony2-自定义表单呈现验证错误

来自分类Dev

在Symfony2中将自定义验证器作为服务创建

来自分类Dev

Symfony2自定义字段类型和提交时的表单事件

来自分类Dev

Symfony2中的自定义存储库类

来自分类Dev

在symfony表单类型中使用自定义约束/验证器

来自分类Dev

Symfony表单中的自定义查询

来自分类Dev

symfony 命令 exec 中的 Symfony2 monolog 记录器自定义字段

Related 相关文章

  1. 1

    Symfony2自定义按钮

  2. 2

    Symfony2自定义表单字段类型HTML5颜色

  3. 3

    在Symfony中自定义JMSPaymentCoreBundle表单

  4. 4

    在symfony2表单构建器中访问底层实体

  5. 5

    Symfony2:如何对自定义复合表单类型使用约束?

  6. 6

    symfony2中的自定义异常行为

  7. 7

    symfony2表单渲染自定义

  8. 8

    Symfony2-使用自定义身份验证器的Twig模板中的用户名和角色

  9. 9

    自定义symfony2嵌入表单模板

  10. 10

    symfony2自定义验证器FatalErrorException

  11. 11

    使用自定义查询构建器的ManyToMany实体的Symfony表单

  12. 12

    使用symfony2中的树枝形式验证表单是否为空/未定义

  13. 13

    如何在Symfony2 / 3中基于用户角色自定义表单字段?

  14. 14

    在symfony表单类型中使用自定义约束/验证器

  15. 15

    Symfony2自定义表单渲染器助手功能

  16. 16

    在symfony2中使用DQL从Entity获取自定义getter值

  17. 17

    Symfony2自定义按钮

  18. 18

    自定义身份验证提供程序中的Symfony2 ContextErrorException

  19. 19

    Symfony2:如何对自定义复合表单类型使用约束?

  20. 20

    Symfony2自定义表单,替换属性,值和主题

  21. 21

    Symfony2自定义表单类型或扩展名

  22. 22

    自定义Symfony2表单

  23. 23

    Symfony2-自定义表单呈现验证错误

  24. 24

    在Symfony2中将自定义验证器作为服务创建

  25. 25

    Symfony2自定义字段类型和提交时的表单事件

  26. 26

    Symfony2中的自定义存储库类

  27. 27

    在symfony表单类型中使用自定义约束/验证器

  28. 28

    Symfony表单中的自定义查询

  29. 29

    symfony 命令 exec 中的 Symfony2 monolog 记录器自定义字段

热门标签

归档