8
respostas

Como usar o redirect no blade.

É possível usar o redirect()->back() dentro de uma view usando o blade? Criei uma página de erro Código 405, toda vez que o usuário tenta acessar uma rota não permitida redirecionar o mesmo para a página anterior, no momento só estou conseguindo exibir a mensagem para o usuário, esse redirecionamento é possível ser feito toda vez quando ocorrer o erro 405?

8 respostas

Bom dia Lucas, tudo bem?

É totalmente possível! Só me ajuda a entender: você criou uma página para o erro 405 e deseja dar a opção ao usuário para voltar para a página anterior, ou quer que isso aconteça imediatamente?

Gostaria que fosse de imediato, sem precisar usar o onload do javascript.

Pensei em talvez tentar algo com um middleware, mas talvez seja mais fácil apenas utilizar a função "header" do próprio php combinado com o redirect()->back(), algo como:

@php
    header('Location: ' . redirect()->back());
@endphp

Talvez você possa ir mais além, e modificar o próprio default do laravel para quando gerar o status 405, redirecionar automaticamente ao invés de mandar para a view. Algo como o que foi feito no terceiro tópico dessa página: https://shouts.dev/articles/create-custom-error-exception-page-in-laravel.

Espero ter ajudado, valeu!

Não funcionou, usei o comando que havia sugerido e deu o erro na foto em Anexo.Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Tenta assim:

header('Location: ' . str_replace(PHP_EOL, '', redirect()->back()));

Esse também não funcionou, retornou o mesmo erro. Será se é porque o redirect só funciona se estiver em uma função?

Boa pergunta, mas creio que não, tenta usando o trim ao invés do str_replace:

header('Location: ' . trim(redirect()->back()));

Se isso não funcionar, tenta assim:

header('Location: ' . url()->previous());