@troublegum

Symfony. Как сделать валидацию с зависимостью от значений св-в сущности?

Всем доброго времени суток!
Столкнулся с такой проблемой, что надо сделать валидацию св-в сущности Post с определенной бизнес логикой.

Что есть:
- валидация через аннотации
- сущность Post (публикация) с признаком публикации и датой публикации
- дата публикации обязательна и должна быть больше или равно текущий дате, если выставлен признак публикации
- если признак публикации снят, то поле дата публикации никак не валидируем

Вопрос! Можно ли как то сделать такую валидацию без написания собственного валидатора поля "дата публикации"?

class Post
{
	/**
     * @Assert\NotNull
     */
	public bool $published;
	
    /**
     * Как написать правила валидации для этого св-ва?
     * @Assert\DateTime
     */
	public \DateTime $publishedAt;
}
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
myks92
@myks92
Нашёл решение — пометь вопрос ответом!
На все такие бизнес требования невозможно написать валидаторы, можно исхитриться, но тогда уйдёт бизнес правило, которое еще и протестировать сложно.

Поэтому, что я вам посоветую. Поместить эту бизнес логику внутрь сущности в специальный метод. Например published(): void. Пример из кода.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы