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

Conexão de bancos de dados em projeto Laravel com Laradock
A conexão é bem direta e intuitiva com os servidores de bancos de dados MySQL ou Mariadb em um projeto PHP Laravel quando se usa contêineres Docker do projeto Laradock. Porém algumas dicas e lembretes são importantes para evitar que você perca tempo quando estiver preparando seu ambiente de desenvolvimento …
Laradock, instalação e configuração
Como instalar e configurar o Laradock, que é, como apresentado no artigo introdutório, um projeto para configuração rápida e simples de ambientes de desenvolvimento de sistemas PHP para web, usando Docker. Neste artigo tutorial, veremos mais detalhadamente como instalar e configurar um ambiente Laradock para trabalhar por projeto PHP, isto …
Laradock – Containers Docker para seu desenvolvimento PHP e Laravel – Introdução
Laradock é um ambiente de desenvolvimento web completo para Docker, que nasceu para atender o desenvolvimento de sistemas Laravel e atualmente provê containers para diversas situações para o desenvolvimento com PHP. Ele oferece suporte a uma variedade de serviços comuns, todos pré-configurados para fornecer um ambiente de desenvolvimento de PHP, …
Roteamento no Laravel não funciona
Este artigo trata do roteamento Laravel não funcionar em instalações novas de projeto, levando em consideração um contexto muito específico, instalações novas do servidor Apache. Roteiro do problema Em algum momento você vai iniciar um novo projeto com o recém instalado projeto com o framework Laravel, após executar o comando …
Como resolver erro Laravel class not found em php artisan migrate:rollback
Se você está recebendo o erro class not found ao executar o comando php artisan migrate:rollback em um projeto com o framework Laravel, este artigo mostra como resolver o erro e executar o roolback. Migrations Ao trabalhar com migrations, as migrações de bancos de dados no Laravel, principalmente na fase …
Como criar data de Copyright com ano automático em seu blog ou site com PHP, WordPress e Laravel
Adicionar a informação de copyright com o ano atual no rodapé de sites e blogs é importante para passar ao seu público a informação de que o conteúdo que ele encontra está "vivo" e atualizado neste site. É interessante também adicionar o ano de início do site, quanto mais informações …

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. Campos obrigatórios são marcados com *