/** * 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); }
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()); }