예제 #1
0
 /**
  * Helper method. Retrieves invalid elements from fieldset the $element belongs to.
  *
  * @param ElementInterface $element
  * @param FieldsetInterface $fieldset
  * @return array|\Traversable
  */
 protected function getInvalidFieldsetElements(ElementInterface $element, FieldsetInterface $fieldset)
 {
     $elementName = $this->normalizeElementName($element->getName());
     $elements = $fieldset->getElements();
     if (isset($elements[$elementName]) && $elements[$elementName] === $element) {
         if ($fieldset->getMessages()) {
             return $elements;
         }
         /* @var $fieldsetElement ElementInterface */
         foreach ($elements as $fieldsetElement) {
             if ($fieldsetElement->getMessages() && ($fieldsetElement->getAttribute('type') === 'hidden' || $fieldsetElement instanceof Element\Captcha)) {
                 return $elements;
             }
         }
     }
     foreach ($fieldset->getFieldsets() as $fieldsetElement) {
         if ($elements = $this->getInvalidFieldsetElements($element, $fieldsetElement)) {
             return $elements;
         }
     }
     return [];
 }
예제 #2
0
 /**
  * @inheritdoc
  */
 public function getMessages()
 {
     return $this->element->getMessages();
 }