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