1
resposta

Código 500

Tudo ocorre perfeitamente, eu atualizo o input muda o nome e tals porem em vez de aparece o codigo 200 aparece o 500, não sei o por que ja que tudo esta funcionando

index

@extends("layout")
    @section("cabecalho")        
        Series
    @endsection
    @section("conteudo")
    @if(!empty($mensagem))
    <div class="alert alert-success">

    {{$mensagem}}

    </div>   
    @endif

</br>
        <a href="/Series/Create" class="btn btn-dark mb-2">Adicionar</a>
        <ul class="list-group">
            @foreach($series as $serie)
            <li class="list-group-item d-flex justify-content-between align-items-center">
            <span id="nome-serie-{{ $serie->id }}">{{ $serie->nome }}</span>

            <div class="input-group w-50" hidden  id="input-nome-serie-{{ $serie->id }}">
                <input type="text" class="form-control" value="{{ $serie->nome }}">
                <div class="input-group-append">
                    <button class="btn btn-primary" onclick="editarSerie({{ $serie->id }})">
                        <i class="fas fa-check"></i>
                    </button>
                    @csrf
                </div>
            </div>
            <span class="d-flex">



            <a href="Series/{{$serie->id}}/temporadas" class="btn btn-info btn-sm  mr-1" ><i class="fas fa-external-link-alt "></i></a>
            <button class="btn btn-info btn-sm mr-1"  onclick="toggleInput({{$serie->id}})"><i class="fas fa-edit"></i></button>
            <form method="POST" action="/Series/Remover/{{$serie->id}}" onsubmit="return confirm('certeza que quer remover {{addslashes($serie->nome)}}?')"> 
                @csrf
                <button class="btn btn-danger btn-sm"><i class="far fa-trash-alt"></i></button>
            </form>
            </span>
            </li>
</ul>
            @endforeach
            <script>

                function toggleInput(serieId){
                    if(document.getElementById(`nome-serie-${serieId}`).hasAttribute("hidden")){
                        document.getElementById(`nome-serie-${serieId}`).removeAttribute("hidden");
                        document.getElementById(`input-nome-serie-${serieId}`).hidden = true;    
                    }else{

                    document.getElementById(`input-nome-serie-${serieId}`).removeAttribute("hidden");
                    document.getElementById(`nome-serie-${serieId}`).hidden = true;

                    }

                }


                function editarSerie(serieId){
                    let formData = new FormData();
                    const nome = document.querySelector(`#input-nome-serie-${serieId} > input`).value;
                    const token = document.querySelector('input[name="_token"]').value;

                    formData.append('nome', nome);
                    formData.append('_token', token);

                    const url = `/Series/${serieId}/editaNome`;
                    fetch(url, {body: formData, method: 'POST'}).then(() => {
                        toggleInput(serieId);
                        document.getElementById(`nome-serie-${serieId}`).textContent = nome;
                    });





                }

</script>       


    @endsection






A function do controller

        public function editaNome(Request $request){

            $nome = $request->nome;
            $serie = Serie::find($request->id);
            $nomeAntigo = $serie->nome;
            $serie->nome = $nome;
            $serie->save();
            $request->flat("mensagem","A serie $nomeAntigo agora se chama $serie->nome"); 

        }
1 resposta

Acho que é essa última linha depois de salvar a série com o novo nome:

$request->flat("mensagem","A serie $nomeAntigo agora se chama $serie->nome"); 

Acho que você quis mandar uma flash message, tipo assim:

$request->session()->flash("mensagem","A serie $nomeAntigo agora se chama $serie->nome"); 

Eu tentei fazer aqui, mas não funciona. Só exibe a mensagem depois de atualizar. E quando coloco redirect para listar-series, nem mostra a mensagem. Por algum motivo a seção é logo encerrada assim que edita. Não sei se isso tem a ver com as funções do JavaScript.