public function atualizarAction() { // obtém a requisição $request = $this->getRequest(); // verifica se a requisição é do tipo post if ($request->isPost()) { // instancia formulário $form = new FuncionarioForm(); // instancia model funcionario com regras de filtros e validações $modelFuncionario = new Funcionario(); // passa para o objeto formulário as regras de viltros e validações // contidas na entity funcionario $form->setInputFilter($modelFuncionario->getInputFilter()); // passa para o objeto formulário os funcionarios vindos da submissão $form->setData($request->getPost()); // verifica se o formulário segue a validação proposta if ($form->isValid()) { // aqui vai a lógica para atualizar os funcionarios à tabela no banco // 1 - popular model com valores do formulário $modelFuncionario->exchangeArray($form->getData()); // 2 - atualizar funcionarios do model para banco de funcionarios $this->getFuncionarioTable()->update($modelFuncionario); // adicionar mensagem de sucesso $this->flashMessenger()->addSuccessMessage("Funcionario editado com sucesso"); $nome_cache_funcionario_id = "nome_cache_funcionario_{$modelFuncionario->id_funcionario}"; if ($this->cache()->hasItem($nome_cache_funcionario_id)) { $this->cache()->removeItem($nome_cache_funcionario_id); } // redirecionar para action detalhes return $this->redirect()->toRoute('funcionarios', ["action" => "main", "id" => $modelFuncionario->id_funcionario]); } else { // em caso da validação não seguir o que foi definido // renderiza para action editar com o objeto form populado, // com isso os erros serão tratados pelo helpers view return (new ViewModel())->setVariable('formFuncionarios', $form)->setTemplate('funcionario/funcionarios/editar'); } } }
public function editAction() { $id = (int) $this->getEvent()->getRouteMatch()->getParam('id'); if (!$id) { return $this->redirect()->toRoute('funcionario', array('action' => 'add')); } $funcionario = $this->getEntityManager()->find('Funcionario\\Entity\\Funcionario', $id); //$funcionario->setDatanasc(new \DateTime()); $form = new FuncionarioForm(); $form->setBindOnValidate(false); $form->bind($funcionario); $form->get('submit')->setAttribute('label', 'Edit'); $request = $this->getRequest(); if ($request->isPost()) { $form->setData($request->getPost()); if ($form->isValid()) { $form->bindValues(); //SET DATA NASC $data = explode("/", $form->getData()->getDataNasc()); $data = $data['0'] . "-" . $data['1'] . "-" . $data['2']; $form->getData()->setDatanasc(new \DateTime($data)); $data = explode("/", $funcionario->getDataAdmissao()); $data = $data['0'] . "-" . $data['1'] . "-" . $data['2']; $funcionario->setDataAdmissao(new \DateTime($data)); //END SET DATA NASC $this->getEntityManager()->flush(); // Redirect to list of funcionarios return $this->redirect()->toRoute('funcionario'); } } return array('id' => $id, 'form' => $form); }