/**
  * Validate the loaded form with the data
  *
  * @param array $data
  *
  * @return ValidationResult
  */
 public function validate(array $data)
 {
     $this->inputFilter->setData($data);
     $validationErrors = [];
     // Do some validation
     if (!$this->inputFilter->isValid()) {
         foreach ($this->inputFilter->getInvalidInput() as $error) {
             $validationErrors[$error->getName()] = $error->getMessages();
         }
     }
     // Return validation result
     return new ValidationResult($this->inputFilter->getRawValues(), $this->inputFilter->getValues(), $validationErrors);
 }
 public function testNestedCollectionWithEmptyData()
 {
     $items_inputfilter = new BaseInputFilter();
     $items_inputfilter->add(new Input(), 'id')->add(new Input(), 'type');
     $items = new CollectionInputFilter();
     $items->setInputFilter($items_inputfilter);
     $groups_inputfilter = new BaseInputFilter();
     $groups_inputfilter->add(new Input(), 'group_class')->add($items, 'items');
     $groups = new CollectionInputFilter();
     $groups->setInputFilter($groups_inputfilter);
     $inputFilter = new BaseInputFilter();
     $inputFilter->add($groups, 'groups');
     $data = array('groups' => array(array('group_class' => 'bar', 'items' => array(array('id' => 100, 'type' => 'item-1'))), array('group_class' => 'biz', 'items' => array()), array('group_class' => 'bar', 'items' => array(array('id' => 200, 'type' => 'item-2'), array('id' => 300, 'type' => 'item-3'), array('id' => 400, 'type' => 'item-4')))));
     $inputFilter->setData($data);
     $inputFilter->isValid();
     $values = $inputFilter->getValues();
     $this->assertEquals($data, $values);
 }
Example #3
0
 public function testResetEmptyValidationGroupRecursively()
 {
     $data = array('flat' => 'foo', 'deep' => array('deep-input1' => 'deep-foo1', 'deep-input2' => 'deep-foo2'));
     $filter = new InputFilter();
     $filter->add(new Input(), 'flat');
     $deepInputFilter = new InputFilter();
     $deepInputFilter->add(new Input(), 'deep-input1');
     $deepInputFilter->add(new Input(), 'deep-input2');
     $filter->add($deepInputFilter, 'deep');
     $filter->setData($data);
     $filter->setValidationGroup(array('deep' => 'deep-input1'));
     // reset validation group
     $filter->setValidationGroup(InputFilter::VALIDATE_ALL);
     $this->assertEquals($data, $filter->getValues());
 }