public function editAction() { $id = (int) $this->getEvent()->getRouteMatch()->getParam('id'); if (!$id) { return $this->redirect()->toRoute('aluno', array('action' => 'add')); } $aluno = $this->getEntityManager()->find('Aluno\\Entity\\Aluno', $id); //$aluno->setDatanasc(new \DateTime()); $form = new AlunoForm($this->getEntityManager()); $form->setBindOnValidate(false); $form->bind($aluno); $form->get('submit')->setAttribute('label', 'Edit'); $request = $this->getRequest(); if ($request->isPost()) { $form->setData($request->getPost()); if ($form->isValid()) { $form->bindValues(); $curso = $this->getEntityManager()->getRepository('Curso\\Entity\\Curso')->findOneBy(array('idcurso' => $aluno->getCursoAluno())); $aluno->setCursoAluno($curso); // $this->getEntityManager()->flush(); if ($form->getData()->getBolsista() == "true") { $form->getData()->setBolsista(true); } else { if ($form->getData()->getBolsista() == "false") { $form->getData()->setBolsista(false); } } //SET DATA NASC $data = explode("/", $form->getData()->getDataNasc()); $data = $data['0'] . "-" . $data['1'] . "-" . $data['2']; $form->getData()->setDatanasc(new \DateTime($data)); //END SET DATA NASC $this->getEntityManager()->persist($aluno); $this->getEntityManager()->flush(); // Redirect to list of albums return $this->redirect()->toRoute('aluno'); } } return array('id' => $id, 'form' => $form); }
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 AlunoForm(); // instancia model alunos com regras de filtros e validações $modelAluno = new Aluno(); // passa para o objeto formulário as regras de viltros e validações // contidas na entity alunos $form->setInputFilter($modelAluno->getInputFilter()); // passa para o objeto formulário os alunos 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 alunos à tabela no banco // 1 - popular model com valores do formulário $modelAluno->exchangeArray($form->getData()); // 2 - atualizar alunos do model para banco de alunos $this->getAlunoTable()->update($modelAluno); // adicionar mensagem de sucesso $this->flashMessenger()->addSuccessMessage("Aluno editado com sucesso"); $nome_cache_aluno_id = "nome_cache_aluno_{$modelAluno->id_aluno}"; if ($this->cache()->hasItem($nome_cache_aluno_id)) { $this->cache()->removeItem($nome_cache_aluno_id); } // redirecionar para action detalhes return $this->redirect()->toRoute('alunos', ["action" => "main", "id" => $modelAluno->id_aluno]); } 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('formAlunos', $form)->setTemplate('aluno/alunos/editar'); } } }