Symfony\Component\Form\CollectionField::bind PHP Method

bind() public method

public bind ( $taintedData )
    public function bind($taintedData)
    {
        if (null === $taintedData) {
            $taintedData = array();
        }

        foreach ($this as $name => $field) {
            if (!isset($taintedData[$name]) && $this->getOption('modifiable') && $name != '$$key$$') {
                $this->remove($name);
            }
        }

        foreach ($taintedData as $name => $value) {
            if (!isset($this[$name]) && $this->getOption('modifiable')) {
                $this->add($this->newField($name, $name));
            }
        }

        return parent::bind($taintedData);
    }

Usage Example

 public function testCollectionOfFieldGroupsBoundWithArrayObjectContainingObjects()
 {
     $fieldGroup = new FieldGroup('name');
     $fieldGroup->add(new TestField('first'));
     $fieldGroup->add(new TestField('last'));
     $field = new CollectionField($fieldGroup);
     $nameData = (object) array('first' => 'Foo', 'last' => 'Bar');
     $collectionData = new \ArrayObject(array($nameData));
     $field->setData($collectionData);
     $boundNameData = (object) array('first' => 'Foo', 'last' => 'Baz');
     $boundCollectionData = new \ArrayObject(array($nameData));
     $field->bind($boundCollectionData);
     $this->assertTrue($field->has('0'));
     $this->assertFalse($field->has('1'));
     $this->assertEquals($boundNameData, $field[0]->getData());
 }
All Usage Examples Of Symfony\Component\Form\CollectionField::bind