/** * Remove a form element * * @param string $elementName * @return $this */ public function removeElement($elementName) { $i = $this->getElementIndex($elementName); $newInitValues = array(); $keys = array_keys($this->initFieldsValues); if (isset($keys[0]) && is_numeric($keys[0])) { foreach ($this->initFieldsValues as $fields) { $newInitValuesAry = array(); foreach ($fields as $name => $field) { if (isset($name) && $name == $elementName) { unset($fields[$name]); } else { $newInitValuesAry[$name] = $field; } } $newInitValues[] = $newInitValuesAry; } } else { foreach ($this->initFieldsValues as $name => $field) { if (isset($name) && $name == $elementName) { unset($this->initFieldsValues[$name]); } else { $newInitValues[$name] = $field; } } } $this->initFieldsValues = $newInitValues; if (isset($this->fields[$elementName])) { unset($this->fields[$elementName]); } if (null !== $i) { $this->form->removeChild($i); } return $this; }