Skip to content

'validation_constraint' - Problem with Collections #3107

Closed
@DerStoffel

Description

@DerStoffel

I created the following form where I remove a field for certain cases, but when I add it, i want it to be validated, but only then.
If I would add the assert to the entity it actually would validate it even if it is not added by the validator, since the entity would
not match its "notBlank" assert.

public function buildForm(FormBuilder $builder, array $options) {
        $builder->add('start', 'datetime', array('date_widget' => 'single_text', 'time_widget' => 'single_text'));
        $builder->add('end', 'datetime', array('date_widget' => 'single_text', 'time_widget' => 'single_text'));
        $builder->add('journeytime');
        $builder->add('content');
        if (count($this->secondaryCategories) > 0) {
            $builder->add('secondaryCategory', 'entity', array('class' => 'ACMEContactBundle:SecondaryCategory', 'empty_value' => 'Bitte auswählen...'));
        }
        $builder->add('initiator', 'entity', array('class' => ACME\\MasterdataBundle\\Entity\\PartyInstance',
            'query_builder' => $this->qb
        ));
    }

public function getDefaultOptions(array $options) {
        $collectionConstraint = new Collection(array(
                    'secondaryCategory' => new Assert\NotBlank()
                ));

        if (count($this->secondaryCategories) > 0) {
            return array(
                'data_class' => 'ACME\ContactBundle\Entity\Visit',
                'validation_constraint' => $collectionConstraint,
            );
        }

        return array(
            'data_class' => 'ACME\ContactBundle\Entity\Visit',
        );
    }

In general the form works, except, when I get to the validation, I get the following error:
Even though I felt, I followed the symfony2 docs (http://symfony.com/doc/current/book/forms.html#adding-validation).

Expected argument of type array or Traversable and ArrayAccess, object given 

Bug or Stupidity? :)
Need help there.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions