示例#1
0
 public static function renderErrors(\Vegas\Forms\Form $form)
 {
     $errorsMessages = array();
     $errors = $form->getMessages();
     foreach ($errors as $error) {
         $formElement = $form->get($error->getField());
         $errorsMessages[$formElement->getLabel()] = $error->getMessage();
     }
     return $errorsMessages;
 }
示例#2
0
 public function testEmptyArray()
 {
     $defaultTest = ['test1' => ['en' => 'foo', 'foo' => 'test11'], 'test2' => ['nl' => 'bar', 'foo' => 'test22'], 'test3' => ['ru' => 'baz', 'foo' => 'test33'], 'test4' => ['es' => 'asdf', 'foo' => 'test44']];
     $model = new FakeModel();
     $model->test = $defaultTest;
     $form = new Form();
     $text = new Text('test[test1][en]');
     $form->add($text);
     $text = new Text('test[test2][nl]');
     $form->add($text);
     $text = new Text('test[test3][ru]');
     $form->add($text);
     // empty values
     $values = ['test' => ['test1' => ['en' => ''], 'test2' => ['nl' => null], 'test3' => ['ru' => 0]]];
     $form->bind($values, $model);
     $this->assertTrue($form->isValid());
     $this->assertArrayHasKey('test1', $model->test);
     $this->assertArrayHasKey('test2', $model->test);
     $this->assertArrayHasKey('test3', $model->test);
     $this->assertArrayHasKey('test4', $model->test);
     $this->assertEquals('', $model->test['test1']['en']);
     $this->assertEquals('test11', $model->test['test1']['foo']);
     $this->assertEquals('bar', $model->test['test2']['nl']);
     $this->assertEquals('test22', $model->test['test2']['foo']);
     $this->assertEquals(0, $model->test['test3']['ru']);
     $this->assertEquals('test33', $model->test['test3']['foo']);
     $this->assertEquals('asdf', $model->test['test4']['es']);
     $this->assertEquals('test44', $model->test['test4']['foo']);
 }
示例#3
0
 /**
  * Acts as factory pattern: generates form object with all dependent elements.
  * Each element should be represented by a specific trait.
  * Uses i18n for provided labels.
  *
  * @param array $data each form element data
  * @return \Vegas\Forms\Form full instance of form
  * @throws \Vegas\Forms\Builder\Exception\InvalidInputSettingsException When provided invalid (manipulated) input
  */
 public function createForm(array $data)
 {
     $form = new GenericForm();
     foreach ($data as $item) {
         $element = $this->callBuilderMethod($item);
         if ($element->getLabel()) {
             $element->setLabel($this->getDI()->get('i18n')->_($element->getLabel()));
         }
         $additionalOptions = $this->callAdditionalOptionsMethod($item);
         if ($additionalOptions !== null) {
             foreach ($additionalOptions as $option) {
                 if (isset($item[$option->getName()])) {
                     $element->setAttribute($option->getName(), $item[$option->getName()]);
                 }
             }
         }
         $form->add($element);
     }
     return $form;
 }