How to make a beginTransaction in the Zend framework?

Asked

Viewed 115 times

0

 public function alterar($objDadosSindicato)
    {    
	 $this->conexao->beginTransaction();

        try
        {
        $alterouSindicato = $this->repositorioDadosSindicato->alterar($objDadosSindicato);
        
        /** Filiação / Desfiliação */
        $this->verificarFiliacaoDesfiliacao($objDadosSindicato->dataFiliacao, $objDadosSindicato->objFiliacaoDesfiliacao);
        
        /** Carteirinha */
        $this->verificaSituacaoCarteirinha($objDadosSindicato->objCarteirinha);
        
        /** Urna */
        $this->verificaSituacaoUrna($objDadosSindicato->objUrna);
       
        /** Pontuação */
        $this->verificaSituacaoPontuacao($objDadosSindicato->objPontuacao);
   
        /** Log */            
		LogFW::salvar(__METHOD__, $objDadosSindicato->idDadosSindicato, $objDadosSindicato);
        
        if($objDadosSindicato->objFiliacaoDesfiliacao->idMotivoDesfiliacao == 0 && $objDadosSindicato->objFiliacaoDesfiliacao->data == null){
			$this->validarSituacaoEnvioSiape($objDadosSindicato);
		}else{
			$this->alterarFiliadoSiapeExclusao($objDadosSindicato->objFiliacaoDesfiliacao);
		}
        $this->conexao->commit();
        return $alterouSindicato;
		
		 }
        catch (PDOException $e)
        {
            $this->conexao->rollback();
        }
    }

I am making an exception with Begin in the zend framework, but the same always enters the exception not running the desired function.

1 answer

0

It is possible to use transaction manager in Zend. For this, do it this way:

// Chamar adaptador que obterá gerenciador de transações
$db_adapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');

// Para iniciar transação
$db_adapter->getDriver()->getConnection()->beginTransaction();

// Para commitar transação
$db_adapter->getDriver()->getConnection()->commit();

// Para voltar transação
$db_adapter->getDriver()->getConnection()->rollback();

Browser other questions tagged

You are not signed in. Login or sign up in order to post.