public function editarAction()
 {
     $id = $this->getRequest()->getParam('id');
     if (!$id || !is_numeric($id)) {
         $this->view->alert = array('tipo' => 'danger', 'titulo' => "Alerta", 'msg' => "ID inválido.");
         return $this->indexAction();
     }
     $prodDB = new Application_Model_DbTable_Produto();
     $res = $prodDB->find($id)->toArray();
     if (count($res) != 1) {
         $this->view->alert = array('tipo' => 'danger', 'titulo' => 'Alerta', 'msg' => 'Produto não encontrado.');
         return $this->indexAction();
     }
     $this->view->produto = $res[0];
     $local = new Application_Model_DbTable_Local();
     $this->view->locals = $local->fetchAll(null, 'nome asc');
     if ($this->getRequest()->isPost()) {
         $error = $this->validaPost();
         if (count($error) > 0) {
             $this->view->msg = "Atualização não realizado";
             $this->view->errors = $error;
         } else {
             $dados = $this->getRequest()->getParams();
             //@TODO change this code to a better place a function on a static Class
             unset($dados['module']);
             unset($dados['controller']);
             unset($dados['action']);
             unset($dados['id']);
             $dados['preco'] = str_replace(',', '.', $dados['preco']);
             $prodDB->update($dados, array('id=?' => $id));
             $this->view->msg = "Atualização realizado com sucesso";
             return $this->indexAction();
         }
     }
     $this->renderScript('produto/cadastrar.phtml');
 }
Esempio n. 2
0
4) (1,0) Criar um script utilizando as classes do ZF para que atenda o fluxo abaixo:

a) Selecionar um registro (id=10) da tabela produto;
b) Se o registro existir, fazer um update neste registro: alterar o valor das colunas nome e dataAlteracao;
c) Se o registro não existir, então cadastra o novo produto (id,nome,dataAlteracao);


<?php 
$produtoTb = new Application_Model_DbTable_Produto();
$produto = $produtoTb->fetchRow('id=10');
if ($produto !== null) {
    $produtoTb->update(array('nome' => $nome, 'dataAlteracao' => $data), 'id=10');
} else {
    $produtoTb->insert(array('nome' => $nome, 'dataAlteracao' => $data));
}