Exemple #1
0
 /**
  * Iterate through all the elements and retrieve their validators
  *
  * @param FieldsetInterface    $formOrFieldset
  * @param InputFilterInterface $inputFilter
  * @return array
  */
 private function getElementAndRules(FieldsetInterface $formOrFieldset, InputFilterInterface $inputFilter)
 {
     $elements = array();
     foreach ($formOrFieldset->getElements() as $element) {
         $validators = Filter::getValidatorsForElement($inputFilter, $element);
         if (count($validators) > 0 && !empty($element)) {
             $rules = array();
             foreach ($validators as $validator) {
                 $rule = $this->getServiceLocator()->get('Rule')->getRule($validator['instance']);
                 if (!is_null($rule)) {
                     $rules[] = $rule;
                 }
             }
             $elements[] = array('element' => $element, 'rules' => $rules);
         }
     }
     foreach ($formOrFieldset->getFieldsets() as $key => $fieldset) {
         $elements = array_merge($elements, $this->getElementAndRules($fieldset, $inputFilter->get($key)));
     }
     return $elements;
 }