Слишком большой для комментария, так что в качестве ответа, но больше похоже на идею, превосходящую комментарий;)
Поскольку у вас есть Форма, состоящая из объектов под-формы, вы рассматривали возможность создания объекта Model для каждая форма? Таким образом, вы можете создать соответствующую группу проверки . Вы бы не сохранили объекты Model в базе данных.
Это также позволит вам предоставлять обратную связь пользователю, поскольку вы можете проверять каждую подформу отдельно для объектов модели.
Как только пользователь сохранит форму, не отметив «Черновик» (или кнопку «Отправить», или как вы ее настроили), вы поймете это. Когда пользователь делает это, вы создаете новую сущность, заполняете ее всеми данными из всех объектов модели. Затем вы создаете новый экземпляр Validator и добавляете в него все группы валидации, созданные вами ранее.
Затем вы запускаете $validator->validate($entity, null, ['validation-group-model1', 'validation-group-model2'])
(что в любом случае происходит внутри) и используете вывод, чтобы предоставить пользователю результат.
Очевидно, что при редактировании существующей сущности необходимо заполнить все объекты модели данными из сущности.