Моя форма выглядит следующим образом:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$factory = $builder->getFormFactory();
$builder->add('name');
$builder->add('description');
$builder->add('manufacturers', null, array(
'required' => false
));
$builder->add('departments', 'collection', array(
'type' => new Department
));
}
У меня есть валидатор класса для объекта, который представляет форму, которая вызывает:
if (!$valid) {
$this->context->addViolationAtSubPath('departments', $constraint->message);
}
Которая добавит только глобальную ошибку в форму, а не ошибку на вспомогательном пути. Я предполагаю, что это потому, что отделы представляют собой набор, встраивающий другой FormType.
Если я изменил departments
на одно из других полей, он отлично работает.
Как я могу получить эту ошибку в нужном месте? Я предполагаю, что это будет нормально работать, если моя ошибка была на одном объекте в коллекции и, таким образом, отображается в дочерней форме, но мои критерии заключаются в том, что нарушение происходит, если ни один из объектов в коллекции не помечен как активный, поэтому ему нужно быть на родительском уровне.