@kaxa3201

Как провалидировать вложенные объекты?

Есть несколько классов DTO, заполнение полей происходит с помощью сеттеров, через конструктор не удобно,так как полей много. В каждом dto есть обязательные поля которые мне нужно чтобы заполнял клиент.
После того как я получаю заполненный DTO я валидирую его с помощью библиотеки symfony 'symfony/validator'
Он хорошо валидирует поля, но мне нужно чтобы я мог валидировать вложенные поля, у которых есть тоже поля которые я хочу провалидировать. Получается рекурсия какая-та. Подскажите как я могу провалидировать эти поля?

пример моих DTO
class UserDTO
{
    /**
     * @var AutoDTO
     */
    private $auto;

   public function setAuto(AutoDTO $auto)
    {
        $this->auto = $auto;

        return $this;
    }
}

class AutoDTO
{
    /**
     * @var PriceDTO
     */
    private $price;

   public function setPrice(PriceDTO $price)
    {
        $this->price = $price;

        return $this;
    }
}
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
https://symfony.com/doc/current/reference/constrai...

class UserDTO
{
    /**
     * @var AutoDTO
     * @Assert\Valid 
     */
    private $auto;

   public function setAuto(AutoDTO $auto)
    {
        $this->auto = $auto;

        return $this;
    }
}

class AutoDTO
{
    /**
     * @var PriceDTO
     * @Assert\Valid 
     */
    private $price;

   public function setPrice(PriceDTO $price)
    {
        $this->price = $price;

        return $this;
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы