Я пытаюсь настроить проверку подлинности на пролив в одном из моих сущностей, проверка прохода требует проверки данных для проверки и проверки поля.Custom Constraint Validation как служба для объекта
Я следил за этой ссылкой: https://symfony.com/doc/2.8/validation/custom_constraint.html, но он не говорит, как установить проверку доступа к моей сущности с помощью YAML.
Установка проверки на прорыв как класс, symfony вызывает ошибку, говоря, что этому классу необходимо передать экземпляр EntityManager.
Вот мой валидатор:
namespace Acme\BundleibBundle\Validator\Constraints;
use Doctrine\ORM\EntityManager;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class IsNotDayOff extends ConstraintValidator
{
private $em;
public $message = 'Impossible the send this day.';
public function __construct(EntityManager $entityManager)
{
$this->em = $entityManager;
}
public function validate($value, Constraint $constraint)
{
$repository = $em->getRepository('AcmeRibBundle:DayOff');
$isDayOff = $repository->findOneByDate($value);
if ($isDayOff) {
$this->context->buildViolation($constraint->message)
->addViolation();
}
}
}
А вот моя служба конфигурации:
validator.is_not_day_off:
class: Acme\Bundle\RibBundle\Validator\Constraints\IsNotDayOff
attributes:
- "@doctrine.orm.entity_manager"
tags:
- { name: validator.constraint_validator, alias: "validator.is_not_day_off" }
Я также попробовать это:
validation.yml
Acme\Bundle\RibBundle\Entity\Address:
properties:
deliveryDate:
- validator.is_not_day_off: ~
Но броски и Exception тоже.
Некоторые справочные данные?
Просто замените «атрибуты» на «аргументы» в вашей конфигурации службы. – Timurib
Да, это была ошибка, но ошибка сохраняется –
Что такое метод validateBy() возврата ограничения? И какую версию Symfony вы используете? – Timurib