Я пытаюсь создать ограничение пользовательских проверки, это соответствующий код:UnexpectedTypeException при попытке создать ограничение пользовательских проверки
ValidCoupon.php
<?php
namespace Bcg\UtilsBundle\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
/**
* @Annotation
*/
class ValidCoupon extends Constraint
{
public function validatedBy()
{
return 'valid_coupon';
}
public $message = 'The coupon is not valid.';
}
class ValidCouponValidator extends ConstraintValidator
{
public function validate($value, Constraint $constraint)
{
var_dump($value);
if (true) {
$this->context->addViolation(
$constraint->message,
array()
);
}
}
}
я называю обслуживание в конфигурации .yml нравится:
services:
validator.unique.valid_coupon:
class: Bcg\UtilsBundle\Validator\Constraints\ValidCoupon
tags:
- { name: validator.constraint_validator, alias: valid_coupon }
validation.yml выглядит следующим образом:
Bcg\UtilsBundle\Entity\Order:
properties:
coupon:
- Bcg\UtilsBundle\Validator\Constraints\ValidCoupon: ~
И ошибка я получаю следующее:
Ожидаемый аргумент типа "Symfony \ Component \ Validator \ ConstraintValidatorInterface", "Bcg \ UtilsBundle \ Validator \ Ограничения \ ValidCoupon" дается 500 Internal Ошибка сервера - UnexpectedTypeException
Полная трассировка стека here.
Я довольно застрял, кажется, не нашел ValidCouponValidator
Я не знаю, как продолжить здесь, я знаю, что публичная функция validateBy()
выполнена, поэтому она должна быть правильно переопределена, т, кажется, так ...
Спасибо, я попытался это, но сочетание других ошибок помешало мне заметить, если это правильное решение, спасибо! Я проверю немного больше, но это кажется правильным. – Trufa