public function salvar(DespesaSubcategoria $objDespesaSubcategoria)
 {
     $arrayDespesaSubcategoria = array_filter($objDespesaSubcategoria->getArrayCopy());
     $id = $objDespesaSubcategoria->id;
     if ($id == 0) {
         return $this->insert($arrayDespesaSubcategoria);
     } else {
         if ($this->buscarUm($id)) {
             var_dump($arrayDespesaSubcategoria);
             return $this->update($arrayDespesaSubcategoria, array('id' => $id));
         }
         throw new \Exception('Registro não encontrado.');
     }
 }
 public function salvarAction()
 {
     $form = $this->getDespesaSubcategoriaForm();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $despesaSubcategoria = new DespesaSubcategoria();
             $despesaSubcategoria->exchangeArray($form->getData());
             $retorno = $this->getDespesaSubcategoriaTabela()->salvar($despesaSubcategoria);
             if ($retorno) {
                 $this->flashMessenger()->addSuccessMessage('Registro salvo com sucesso.');
                 return $this->redirect()->toRoute('despesa-subcategoria');
             } else {
                 $this->flashMessenger()->addErrorMessage('Erro ao salvar registro, tente novamente.');
             }
         }
     }
     $arrayCategoria = $this->getDespesaCategoriaTabela()->buscarTodos(false);
     return array('form' => $form, 'categorias' => array_column($arrayCategoria->toArray(), 'nome', 'id'));
 }