Пользовательский валидатор не загружается на Symfony 4 - PullRequest
0 голосов
/ 11 октября 2018

Я создал собственный валидатор, но Symfony 4, похоже, не загружает его.

Вот мой пользовательский валидатор:

//Status.php
<?php

namespace App\Validator\Constraints;

use Symfony\Component\Validator\Constraint;

/**
 * @Annotation
 */
class Status extends Constraint
{
    /**
     * {@inheritDoc}
     */
    public function getTargets()
    {
        return self::CLASS_CONSTRAINT;
    }
}

Пользовательский валидатор

//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: ~

Когда я отправляю форму и оставляю статус пустым, форма сохраняется, не проходя эту проверку.В документах Symfony 4 должен автоматически подключать эти проверки.Кеш очищен.то же самое.

1 Ответ

0 голосов
/ 11 октября 2018

В файле yaml должен быть класс Ограничение App \ Validator \ Constraints \ Status, а не класс Validator.

https://symfony.com/doc/current/validation/custom_constraint.html

...