/** * @param $name * @return Element */ public function row($name) { if (isset($this->cache[$name])) { return $this->cache[$name]; } $elem = $this->fieldSet->get($name); if ($elem instanceof ZendFieldSet) { $return = new Element($elem, $this->renderer); $this->cache[$name] = $return; return $return; } throw new \DomainException('Invalid form fieldset object'); }
/** * Helper method. Retrieves all elements from fieldset the $element belongs to. * * @param ElementInterface $element * @param FieldsetInterface $fieldset * @return array|\Traversable */ protected function getFieldsetElements(ElementInterface $element, FieldsetInterface $fieldset) { $elementName = $this->normalizeElementName($element->getName()); if ($fieldset->has($elementName) && $fieldset->get($elementName) === $element) { return array_merge($fieldset->getElements(), $fieldset->getFieldsets()); } if ($fieldset instanceof Element\Collection && (($elements = $this->getFieldsetElements($element, $fieldset->getTargetElement())) || ($template = $fieldset->getTemplateElement()) && ($elements = $this->getFieldsetElements($element, $template)))) { return $elements; } foreach ($fieldset->getFieldsets() as $fieldsetElement) { if ($elements = $this->getFieldsetElements($element, $fieldsetElement)) { return $elements; } } return []; }