示例#1
0
 /**
  * @param array $schemaArray
  * @param $buttonName
  * @return Element
  */
 public function build(array $schemaArray, $buttonName)
 {
     $schema = [];
     foreach ($schemaArray as $item) {
         if (is_array($item)) {
             $schema[] = $item;
         } else {
             $schema[] = $item->toArray();
         }
     }
     return $this->generator->generate($schema, $buttonName);
 }
 public function testGenerator()
 {
     $factory = new Factory();
     //bootstrap factory
     $form = (new Form())->setAttribute('class', 'form-horizontal')->addChild($factory->makeFormInput('Email', 'email', 'inputEmail3', 'Email'))->addChild($factory->makeFormInput('Password', 'password', 'inputPassword3', 'Password'))->addChild($factory->makeFormInput('testSelect', 'select', 'select4', '', [['name' => 'one', 'value' => 1], ['name' => 'two', 'value' => 2]]))->addChild($factory->makeButton('Sign In'));
     $elements = $form->getAllElementsOfType('input');
     /** @var $input Element */
     foreach ($elements as $input) {
         $input->setAttribute('value', isset($element['value']) ? $element['value'] : "");
     }
     $generator = new Generator($factory);
     $form2 = $generator->generate([['label' => 'Email', 'type' => 'email', 'id' => 'inputEmail3', 'placeholder' => 'Email'], ['label' => 'Password', 'type' => 'password', 'id' => 'inputPassword3', 'placeholder' => 'Password'], ['label' => 'testSelect', 'type' => 'select', 'id' => 'select4', 'placeholder' => '', 'options' => [['name' => 'one', 'value' => 1], ['name' => 'two', 'value' => 2]]]], 'Sign In');
     $this->assertEquals($form->render(), $form2->render());
 }