Моя форма выглядит так:
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);
}
Это добавит в форму только «глобальную» ошибку, а не ошибку в подпути. Я предполагаю, что это связано с тем, что отделы представляют собой коллекцию, включающую другой тип формы.
Если я изменил departments
на одно из других полей, все работает нормально.
Как я могу сделать так, чтобы эта ошибка появлялась в нужном месте? Я предполагаю, что это сработало бы нормально, если бы моя ошибка была связана с одним объектом в коллекции и, таким образом, отображалась в дочерней форме, но мои критерии заключаются в том, что нарушение происходит, если ни один из объектов в коллекции не помечен как активный, поэтому он должен находиться на родительском уровне.