у меня есть немного $ 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);
Но число ограничений всегда равно 0, даже если объект недействителен, похоже, что анализатор аннотаций игнорирует аннотации этого объекта. Хорошо работает над сущностями Doctrine в том же проекте.
Есть идеи?
Вам необходимо получить услугу валидатора:
без автопроводки
$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
Других решений пока нет …