Pular para o conteúdo
Início » Desenvolvimento Web » Retornar link para a URL anterior no Laravel

Retornar link para a URL anterior no Laravel

Em alguns momentos de sua aplicação ou site desenvolvido com o framework Laravel, existe a necessidade de, via um “link”, permitir ao seu usuário voltar ou retornar para a URL – página ou rota, anteriormente chamada.

Isto é comumente necessário ao mostrar uma tela de mensagem de erro do tipo 404 – Page not found, ou 403 – Forbidden (Não autorizado).

Porém, nem sempre é interessante montar este link por meio do History de navegação do browser, que pode ser conseguido pelo método back em Javascript.

O exemplo de código em Javascript para retornar à URL de navegação anterior seria:

history.back()

Como eu disse acima, nem sempre é interessante usar esta função pois nosso usuário pode ter chegado a este ponto do sistema por meio de redirecionamentos, sendo necessário garantir a rota anterior corretamente.

Outro problema está relacionado ao SEO de sua aplicação que pode ser prejudicado se o motor de busca não identificar corretamente os links nas páginas que faz o rastreamento.

Montar o link para URL ou Rota anterior com Laravel

Portanto a melhor estratégia é montar este endereço de URL utilizando os componentes que o Laravel fornece ao desenvolvedor.

Você pode montar a URL usando duas estratégias diferentes: no Controller (Controlador) ou diretamente na View (Visão) diretamente no Template Blade. Caso monte no controller você deve passar como uma variável esta informação para a view.

Redirecionar para URL anterior no Controller

Para direcionar o usuário diretamente do controller para a rota anterior, você deverá retornar de uma action deste controlador que enviará ao navegador as informações corretas de redirect.

Esta é uma estratégia que não monta a URL na tela para o usuário, mas atende se você estiver em um fluxo onde sua aplicação necessite tomar a decisão de redirecionar o usuário para a rota anterior.

Utilize para isto ou o helper back():

function acaoNoController()
{
   ...

   // retorna com redirect para a última rota
   return back();
}

Ou ainda utilizando o helper redirect com o método back:

function acaoNoController()
{
   ...

   // retorna com redirect para a última rota
   return redirect()->back();
}

Usando esta estratégia ainda é possível adicionar variáveis de input do usuário para a rota que estará sendo chamada, ou informações de erro:

function acaoNoController()
{
   ...

   // retorna com redirect para a última rota, com Inputs do usuário e Mensagem de Erro
   return redirect()
      ->back()
      ->withInput()
      ->withErrors(['Minha mensagem de erro']);
}

Mas se você precisa mostrar a URL ao usuário, para que ele clique na mesma e um mecanismo de busca possa indexar esta informação, faça isto diretamente na View.

Montar URL anterior na View com Blade

Se você deseja montar um link na tela para que o usuário clique e volte à página anteriormente navegada por ele, utilize o helper url que monta corretamente as URLs do seu aplicativo, chamando seu método previous:

<a  href="{{ url()->previous() }}">
    <i class="fa fa-arrow-circle-o-left"></i>
    <span>Voltar</span>
</a>

Assim o usuário poderá clicar no link e o mecanismo de busca poderá montar corretamente a árvore de links de seu site ou aplicação se necessário.


Mais sobre Laravel

Boas práticas para escrever Código Limpo
Neste artigo apresento dicas para ao desenvolver um software, escrever com boas práticas de código limpo, o que, em geral, significa escrever blocos de código mais legíveis, em alguns contextos, mais fluídos e, bem estruturados. Existe um engano por parte de pessoas desenvolvedoras em nível júnior, de que o "conceito" …
Laravel PHP – Class ‘NumberFormatter’ Not Found
Ao instalar uma aplicação em um servidor Windows (necessidade de projeto, adequação a infraestrutura do cliente), me deparei com o erro "NumberFormatter Not Found". A primeira reação foi verificar se havia esquecido algum commit de meu ambiente de desenvolvimento PHP Laravel local para o repositório Github, que tivesse uma correção …
Como resolver “COMPOSER_AUTH” does not match the expected JSON schema no Laradock
Ao usar Laradock, acessando o container Workspace por vezes tenho recebido o segundo erro ao tentar executar o php composer: "COMPOSER_AUTH" does not match the expected JSON schema, this may result in errors and should be resolved: – Boolean value found, but an object is required Segundo esta issue do …
Livros e-books gratuitos de programação e computação em geral
Procurando livros e-books gratuitos sobre programação, desenvolvimento de software e outras áreas de computação? Esta lista trás estes temas e ainda livros sobre engenharia de software, e outros assuntos. O período de pandemia fez explodir de vez o número de vídeos educativos e cursos online, tanto na produção quanto em …
Como repopular com old o campo de input file upload, em PHP e Laravel
Após a validação de formulários de entrada de dados, que retornam ao usuário com informações dos erros que devem ser corrigidos, a boa prática de popular os campos com os antigos valores (old) não é possível de ser aplicada aos campos de upload – field files, tanto em PHP Laravel …
Razões para escolher e usar PHP como linguagem de programação
Muitos iniciantes e até mesmo desenvolvedores experientes, mas que não conhecem a linguagem, questionam quais as razões para escolher, e definitivamente usar o PHP como a linguagem de programação para um projeto de pequeno ou grande porte, primeira linguagem ou projeto freelancer. Muitos adoram odiar a linguagem PHP, mesmo assim, …

Mantenha-se atualizado

Não esqueça de me seguir no Twitter e assinar o Canal Mazer.dev no Youtube para receber atualizações de novos artigos, vídeo aulas e cursos gratuitos em desenvolvimento e engenharia de software.

Deixe um comentário

O seu endereço de e-mail não será publicado.

pt_BRPortuguese
%d blogueiros gostam disto: