Gc\Form\AbstractForm::loadValues PHP Method

loadValues() public method

Load values
public loadValues ( AbstractTable $table ) : AbstractForm
$table Gc\Db\AbstractTable Table
return AbstractForm
    public function loadValues(AbstractTable $table)
    {
        $data = $table->getData();
        $inputFilter = $this->getInputFilter();
        if (is_array($data)) {
            foreach ($data as $elementName => $elementValue) {
                if ($this->has($elementName)) {
                    $this->get($elementName)->setValue($elementValue);
                }
                if ($inputFilter->has($elementName)) {
                    $validators = $inputFilter->get($elementName)->getValidatorChain()->getValidators();
                    foreach ($validators as $validator) {
                        if ($validator['instance'] instanceof NoRecordExists) {
                            $validator['instance']->setExclude(array('field' => 'id', 'value' => $table->getId()));
                        }
                    }
                }
            }
        }
        return $this;
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * Test
  *
  * @return void
  */
 public function testLoadValues()
 {
     $model = Model::fromArray(array('name' => 'Name'));
     $inputFilterFactory = new InputFilterFactory();
     $inputFilter = $inputFilterFactory->createInputFilter(array('name' => array('required' => true, 'validators' => array(array('name' => 'not_empty'), array('name' => 'db\\no_record_exists', 'options' => array('table' => 'datatype', 'field' => 'name', 'adapter' => $this->object->getAdapter()))))));
     $this->object->setInputFilter($inputFilter);
     $this->object->add(new Element\Text('name'));
     $this->assertInstanceOf('Gc\\Form\\AbstractForm', $this->object->loadValues($model));
 }