public function editAction() { $id = (int) $this->getEvent()->getRouteMatch()->getParam('id'); if (!$id) { return $this->redirect()->toRoute('curso', array('action' => 'add')); } $curso = $this->getEntityManager()->find('Curso\\Entity\\Curso', $id); $form = new CursoForm($this->getEntityManager()); $form->setBindOnValidate(false); $form->bind($curso); $form->get('submit')->setAttribute('label', 'Edit'); $request = $this->getRequest(); if ($request->isPost()) { $form->setData($request->getPost()); if ($form->isValid()) { $form->bindValues(); $departamento = $this->getEntityManager()->getRepository('Professor\\Entity\\Departamento')->findOneBy(array('iddepartamento' => $curso->getDepartamentoCurso())); $curso->setDepartamentoCurso($departamento); $this->getEntityManager()->flush(); // Redirect to list of albums return $this->redirect()->toRoute('curso'); } } 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 CursoForm(); // instancia model curso com regras de filtros e validações $modelCurso = new Curso(); // passa para o objeto formulário as regras de viltros e validações // contidas na entity curso $form->setInputFilter($modelCurso->getInputFilter()); // passa para o objeto formulário os curso 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 curso à tabela no banco // 1 - popular model com valores do formulário $modelCurso->exchangeArray($form->getData()); // 2 - atualizar curso do model para banco de curso $this->getCursoTable()->update($modelCurso); // adicionar mensagem de sucesso $this->flashMessenger()->addSuccessMessage("Curso editado com sucesso"); $nome_cache_curso_id = "nome_cache_curso_{$modelCurso->id_curso}"; if ($this->cache()->hasItem($nome_cache_curso_id)) { $this->cache()->removeItem($nome_cache_curso_id); } // redirecionar para action detalhes return $this->redirect()->toRoute('cursos', ["action" => "main", "id" => $modelCurso->id_curso]); } 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('formCursos', $form)->setTemplate('curso/cursos/editar'); } } }