src/PeekAndPoke/Component/Formal/Field/FormCollectionField.php
public function submit($data)
    {
        // track which forms we will keep and which values
        $resultingForms = [];
        $resultingValue = [];

        foreach ($this->forms as $k => $form) {
            if (isset($data[$k])) {
                $form->submit($data[$k]);
                // keep the form and its value
                $resultingForms[] = $form;
                $resultingValue[] = $form->getValue();
            }
        }

        $this->forms = $resultingForms;
        $this->value = $resultingValue;

        // did we receive additional sub forms (created from the blueprint)?
        if (isset($data[self::ADDITIONAL]) && is_array($data[self::ADDITIONAL])) {

            foreach ($data[self::ADDITIONAL] as $v) {
                // we need the key for the additional form
                $key = count($this->forms);
                // we create the additional form and set the key for the id
                $additionalForm = $this->createBlueprintForm();
                $additionalForm->setId($key);
                $additionalForm->submit($v);

                // also remember that form and changes the parent
                $this->forms[$key] = $additionalForm;
                // also we need to update the value stored on the collection field
                $this->value[$key] = $additionalForm->getValue();
            }
        }

        return $this;
    }
public function submit($data)
    {
        // track which forms we will keep and which values
        $resultingForms = [];
        $resultingValue = [];

        foreach ($this->forms as $k => $form) {
            if (isset($data[$k])) {
                $form->submit($data[$k]);
                // keep the form and its value
                $resultingForms[] = $form;
                $resultingValue[] = $form->getValue();
            }
        }

        $this->forms = $resultingForms;
        $this->value = $resultingValue;

        // did we receive additional sub forms (created from the blueprint)?
        if (isset($data[self::ADDITIONAL]) && is_array($data[self::ADDITIONAL])) {

            foreach ($data[self::ADDITIONAL] as $v) {
                // we need the key for the additional form
                $key = count($this->forms);
                // we create the additional form and set the key for the id
                $additionalForm = $this->createBlueprintForm();
                $additionalForm->setId($key);
                $additionalForm->submit($v);

                // also remember that form and changes the parent
                $this->forms[$key] = $additionalForm;
                // also we need to update the value stored on the collection field
                $this->value[$key] = $additionalForm->getValue();
            }
        }

        return $this;
    }
public function submit ( $ data ) { // track which forms we will keep and which values $ resultingForms = [ ] ; $ resultingValue = [ ] ; foreach ( $ this -> forms as $ k => $ form ) { if ( isset ( $ data [ $ k ] ) ) { $ form -> submit ( $ data [ $ k ] ) ; // keep the form and its value $ resultingForms [ ] = $ form ; $ resultingValue [ ] = $ form -> getValue ( ) ; } } $ this -> forms = $ resultingForms ; $ this -> value = $ resultingValue ; // did we receive additional sub forms (created from the blueprint)? if ( isset ( $ data [ self :: ADDITIONAL ] ) && is_array ( $ data [ self :: ADDITIONAL ] ) ) { foreach ( $ data [ self :: ADDITIONAL ] as $ v ) { // we need the key for the additional form $ key = count ( $ this -> forms ) ; // we create the additional form and set the key for the id $ additionalForm = $ this -> createBlueprintForm ( ) ; $ additionalForm -> setId ( $ key ) ; $ additionalForm -> submit ( $ v ) ; // also remember that form and changes the parent $ this -> forms [ $ key ] = $ additionalForm ; // also we need to update the value stored on the collection field $ this -> value [ $ key ] = $ additionalForm -> getValue ( ) ; } } return $ this ; }
@param mixed[][] $data

@return $this
@param mixed [] [] $data