1
resposta

criador de série retorna null, mas salva no banco e apresenta na lista

Neste ponto do código após refatorar a classe de criarSerie:

public function criarSerie(string $nomeSerie, int $qtdTemporadas, int $episodios): Serie
    {
        $serie = null;
        DB::transaction(function() use ($episodios, $qtdTemporadas, $nomeSerie){
            $serie = Serie::create([
                'nome' => $nomeSerie
            ]);

            $this->criarTemp($episodios, $qtdTemporadas, $serie);
        });

       return $serie;
    }

ele retorna null... e o laravel direciona para página de erro, mas quando vou para lista de séries, a série foi incluída...

segue o erro apresentado:

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_RECOVERABLE_ERROR) Return value of App\Services\CriadorDeSerie::criarSerie() must be an instance of App\Serie, null returned

porém ao realizar outra refatoração para uso de beginTransaction e commit..... este erro não ocorre mais**

1 resposta

Oi Rafael, beleza?

A variável chamada série dentro da função anônima não tem acesso ao escopo externo, ou seja, vc criou uma série com valor null e está retornando esse nul..