Как проверить не Doctrine Entity Object - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть $ customObject , который является экземпляром CustomClass , и я хочу проверить его с помощью Symfony Validation. CustomClass не является классом сущности Doctrine.

Вот мой CustomClass:

use Symfony\Component\Validator\Constraints as Assert;
class SomeClass {
    /**
    * @Assert\NotBlank(message="Status should not be empty")
    * @Assert\Choices({"200", "201"})
    */
    protected $status;

    /**
    * @Assert\Type("string")
    * @Assert\NotBlank(message="Content should not be empty")
    */
    protected $content;
}

Попытка его проверить:

$constraints = Validation::createValidator()->validate($customObject);

Но ограниченияcount всегда равен 0, даже если объект недействителен, похоже, что анализатор аннотаций игнорирует аннотации этого объекта.Хорошо работает над сущностями Doctrine в том же проекте.Есть идеи?

1 Ответ

0 голосов
/ 20 декабря 2018

Вам необходимо получить услугу валидатора:

без автопроводки

$validator = $this->get('validator');

с автопроводкой

use Symfony\Component\Validator\Validator\ValidatorInterface;
...
public function myMethod(ValidatorInterface $validator)

А затем

$errors = $validator->validate($customObject);

У вас есть в вашей конфигурации:

framework:
    validation: { enable_annotations: true }

Подробнее здесь: https://symfony.com/doc/current/validation.html#using-the-validator-service

...