Example #1
0
 /**
  * @param ZendForm $form
  * @param boolean  $groupActions
  *
  * @return Form
  */
 public function __invoke(ZendForm $form, $groupActions = false)
 {
     $this->formActionElements = array();
     $form->prepare();
     $this->setElement(new HtmlElement('form'));
     $this->getElement()->setAttributes(array('action' => '', 'method' => 'GET'));
     if (!$form->hasAttribute('id')) {
         $form->setAttribute('id', $form->getName());
     }
     $this->getElement()->addAttributes($form->getAttributes());
     $this->renderElements($form->getIterator(), $groupActions);
     $this->renderFormActions();
     return clone $this;
 }
 /**
  * @param \Zend\Form\Form $form
  */
 public function updateOrCreate($form)
 {
     $checkEntityNotExist = false;
     $formName = $form->getName();
     $data = $this->params()->fromPost();
     if (!empty($formName) && $form->wrapElements()) {
         $data = $data[$formName];
     }
     $codigo = $this->getIdentifierData($form, $data);
     if ($codigo) {
         $entity = $this->getService()->find($codigo);
         if (!$entity) {
             $checkEntityNotExist = true;
         } else {
             $form->bind($entity);
         }
     } else {
         $checkEntityNotExist = true;
     }
     $form->setData($data);
     if ($form->isValid()) {
         if (!$checkEntityNotExist) {
             $entity = $this->getService()->update($entity);
             $this->setEntity($entity);
             return 1;
         } else {
             if ($this->getFormCreate()) {
                 $entity = $this->getService()->create($entity);
                 $this->setEntity($entity);
                 return 2;
             }
             throw new BaseException($this->getTranslator()->translate('e_entity_not_found'), BaseException::ERROR_ENTITY_NOT_EXIST);
         }
     }
     return false;
 }
Example #3
0
File: Form.php Project: rikaix/zf2
 /**
  * Add a form group/subform
  *
  * @param  Form $form
  * @param  string $name
  * @param  int $order
  * @return Form
  */
 public function addSubForm(Form $form, $name, $order = null)
 {
     $name = (string) $name;
     foreach ($this->_loaders as $type => $loader) {
         $loaderPaths = $loader->getPaths();
         foreach ($loaderPaths as $prefix => $paths) {
             foreach ($paths as $path) {
                 $form->addPrefixPath($prefix, $path, $type);
             }
         }
     }
     if (!empty($this->_elementPrefixPaths)) {
         foreach ($this->_elementPrefixPaths as $spec) {
             list($prefix, $path, $type) = array_values($spec);
             $form->addElementPrefixPath($prefix, $path, $type);
         }
     }
     if (!empty($this->_displayGroupPrefixPaths)) {
         foreach ($this->_displayGroupPrefixPaths as $spec) {
             list($prefix, $path) = array_values($spec);
             $form->addDisplayGroupPrefixPath($prefix, $path);
         }
     }
     if (null !== $order) {
         $form->setOrder($order);
     }
     if (($oldName = $form->getName()) && $oldName !== $name && $oldName === $form->getElementsBelongTo()) {
         $form->setElementsBelongTo($name);
     }
     $form->setName($name);
     $this->_subForms[$name] = $form;
     $this->_order[$name] = $order;
     $this->_orderUpdated = true;
     return $this;
 }
Example #4
0
 public function testCanSetObjectStateByPassingConfigObjectToConstructor()
 {
     $config = new Config($this->getOptions());
     $form = new Form($config);
     $this->assertEquals('foo', $form->getName());
     $this->assertEquals('someform', $form->getAttrib('class'));
     $this->assertEquals('/foo/bar', $form->getAction());
     $this->assertEquals('put', $form->getMethod());
 }
 /**
  * Verifica se o formulario e valido
  * @return boolean
  */
 public function subFormIsValid(\Zend\Form\Form $subForm, array $data)
 {
     $name = $subForm->getName();
     if (isset($data[$name])) {
         $subForm->setData($data[$name]);
     } else {
         $subForm->setData(array());
     }
     if ($subForm->isValid()) {
         $this->getContainer()->{$name} = $subForm->getData(FormInterface::VALUES_AS_ARRAY);
         return true;
     }
     return false;
 }