Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Controle de transação

Nesse tipo de cadastro explicado até esta aula (mestre/detalhe) é comum termos que manipular transações para realizar as operações. Abrir uma transação quando inicia a inclusão da série e "comitar" apenas se as temporadas e episódios forem inseridos corretamente, caso contrário "abortar" a inclusão. Isso já é feito de maneira implícita pelo Laravel? Preciso configurar alguma coisa para definir qual é o nível de isolamento? É possível (ou necessário) fazer o controle de transação manual abrindo a transação e chamando "commit" ou "abort" no final?

2 respostas
solução!

Tudo bem rodrigo, o laravel de dá essa opção pela facade DB mas não realiza automaticamente. Segue um exemplo de código utilizando as transactions:

public function funcaoQualquer()
{
    try {
        DB::beginTransaction(); //inicia a transação no db

        //aqui você faz tudo que precisa

        DB::commit(); //commita os dados no db    
    } catch (\Exception $exception) {
        Log::error($exception); //log do erro gerado ou qualquer outra ação se quiser
        DB::rollback(); //descarta os dados 
    }
}

Obrigado Marlon. Vi também que algumas aulas mais a frente o Vinícius explica sobre o assunto.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software