自定义验证器未在Symfony 4上加载

时间:2018-10-11 09:01:01

标签: symfony4 customvalidator

我建立了一个自定义验证器,但是Symfony 4似乎没有加载它。

这是我的自定义验证器:

//StatusValidator.php
<?php
namespace App\Validator\Constraints;

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

/**
 * @Annotation
 */
class StatusValidator extends ConstraintValidator
{
    public function validate($value, Constraint $constraint)
    {
           // here I straight away adding a violation
            $message = 'Status already exists.';
            $this->context
                ->buildViolation($message)
                ->atPath('status')
                ->addViolation();
    }
}

自定义验证器

// config/validator/Status.yaml
App\Entity\Status:
    properties:
        status:
            - NotBlank: ~
            - App\Validator\Constraints\StatusValidator: ~

这是Yaml

 Reverse for 'delete_view' with arguments '('',)' not found. 1 pattern(s) tried: ['essay/(?P<essay_id>[0-9]+)/delEssay/$']

当我提交表单并将状态保留为空白时,该表单将保存,而无需经过此验证。在文档中,Symfony 4应该自动装配这些验证。缓存已清除。一样。

1 个答案:

答案 0 :(得分:0)

在yaml文件中,应为约束类App \ Validator \ Constraints \ Status,而不是Validator类。

Dataframe without styling