1
resposta

Mensagem enviada pelo session() não aparece

Para aplicar o conteúdo do curso resolvi fazer um projeto diferente do apresentado no curso, então surgiu um problema e uma dúvida.

Ao realizar a exclusão de um registro adiciono uma flashMessage que deveria informar qual registro foi apagado, só que a mensagem não é exibida na tela. Já revi a aula mas não consigo encontrar o erro.

Método que apaga o registro e define a mensagem: (\app\Http\Controllers\ManipularRegistros.php) - linha:149

public function apagaDespesa(Request $request, int $ano, int $mes, int $id)
    {
        DB::beginTransaction();
        $item= Despesa::query()->find("$id");
        Despesa::destroy("$id");
        $request->session()->flash('mensagem', "Item $item->descricao excluido das Despesas");
        DB::commit();

        return redirect()->back();
    }

Código que deveria exibir a mensagem: (\resources\views\layouts\principal.blade.php) - linha:146

@if(!empty($mensagem))
    <div class="alert alert-success">
         {{ $mensagem }}
    </div>
@endif

Caso seja necessário deixarei o link do repositório: https://github.com/MaykiSantos/Controle-de-Gastos-Laravel

*Gostaria também de saber se é possível ver quais informações estão salvas na sessão pelo "inspecionar" do navegador. *

1 resposta

Mayki, para acessar a variável $mensagem, você precisa torná-la disponível em seu Controller.

Se você precisa que TODAS as rotas definam essa variável, talvez usar um Middleware resolva seu problema. :-)

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