Как я могу добавить нарушение в коллекцию?

Моя форма выглядит так:

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на одно из других полей, все работает нормально.

Как я могу сделать так, чтобы эта ошибка появлялась в нужном месте? Я предполагаю, что это сработало бы нормально, если бы моя ошибка была связана с одним объектом в коллекции и, таким образом, отображалась в дочерней форме, но мои критерии заключаются в том, что нарушение происходит, если ни один из объектов в коллекции не помечен как активный, поэтому он должен находиться на родительском уровне.

10
задан j0k 19 September 2012 в 13:07
поделиться

0 ответов

Другие вопросы по тегам:

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