Я пытаюсь сделать свое приложение гибким, используя файлы конфигурации вместо жестко запрограммированных материалов, и у меня возникают проблемы с ограничениями проверки:
/**
* @var ArrayCollection[SubjectTag]
*
* @ORM\OneToMany(targetEntity="SubjectTag", mappedBy="subject")
* @Assert\Count(max = 15, maxMessage = "You can't create more than 15 tags.")
* @Assert\Valid()
*/
protected $tags;
Было бы лучше сделать что-то вроде:
/**
* @var ArrayCollection[SubjectTag]
*
* @ORM\OneToMany(targetEntity="SubjectTag", mappedBy="subject")
* @Assert\Count(max = "%subject.max_tags%", maxMessage = "You can't create more than %subject.max_tags% tags.")
* @Assert\Valid()
*/
protected $tags;
Но после отладки я увидел, что мои параметры не были восстановлены.
Есть ли способ добиться этого?
Единственный способ сделать это — создать пользовательское ограничение проверки:
http://symfony.com/doc/current/cookbook/validation/custom_constraint.html
Вы можете ввести любые параметры или услуги, которые вам нужны, в валидатор.
Других решений пока нет …