Botón de retroceso Laravel


86

Estoy tratando de crear un botón de retroceso simple en una página. El usuario puede llegar a esta página desde dos páginas diferentes, por lo que me gustaría saber desde qué página llegó. ¿Es eso posible?


2
{{ url()->previous() }}en Laravel 5
Connor Leech

Respuestas:


145

En Laravel, puedes hacer algo como esto: <a href="{{ Request::referrer() }}">Back</a>(asumiendo que estás usando Blade).

Laravel 4

{{ URL::previous() }}

Laravel 5+

{{ url()->previous() }}

Documentación de Laravel


Gracias esto funciona !! No pude encontrar esto en la documentación ... ¿hay algún otro lugar donde pueda sacar más provecho de laravel?
cosapostolo

2
Puede consultar la documentación , usar sus foros , buscar la fuente en la carpeta de laravel o colgar en su canal de IRC #laravel en freenode. Recomiendo encarecidamente el canal IRC a mucha gente amable y servicial para responder a sus preguntas, de día o de noche.
Anon

21
@yannishristofakis ¿Estás usando Laravel 4? El comportamiento de la URL cambió, utilice URL::previous()en su lugar.
Markus Hofmann

2
Request :: header ("referente");
Ramesh

1
el problema con esto y el enfoque URL :: previous () es que se basa en el referente http. 1) Es posible que esto no lo establezcan todos los agentes de usuario, por lo que no puede confiar en él todo el tiempo. 2) Además, si está configurado pero visita la página específica desde un enlace en una fuente externa, volvería a esa fuente.
morksinaanab

70

Sé que esta es una pregunta antigua, pero la encontré mientras buscaba la misma solución. La solución anterior no parece funcionar en Laravel 4, sin embargo, puede usar esto ahora:

<a href="{{ URL::previous() }}">Go Back</a>

Espero que esto ayude a las personas que buscan esta función en L4

(Fuente: https://github.com/laravel/framework/pull/501/commits )


55

Laravel 5.2+, botón de retroceso

<a href="{{ url()->previous() }}" class="btn btn-default">Back</a>

17

La siguiente es una solución completa de Blade (el motor de plantillas que usa Laravel):

{!! link_to(URL::previous(), 'Cancel', ['class' => 'btn btn-default']) !!}

La matriz de opciones con la clase es opcional, en este caso especifica el estilo de un botón Bootstrap 3.


1
Hay una cosa que debe cambiarse, en lugar de {{...}} debe usar {!! ... !!} de lo contrario, la cadena se escaparía.
happyhardik

1
Es cierto que en ese momento esto funcionaba en Laravel 4 antes de que se escaparan de forma predeterminada. Actualizado para funcionar con las versiones actuales de Laravel. Gracias :)
mike.bronner

17

De hecho, usar {{ URL:previous() }}Do work, pero si está usando una ruta con el mismo nombre para mostrar múltiples vistas, lo llevará de regreso al primer punto final de esta ruta.

En mi caso, tengo una ruta con nombre, que en base a un parámetro seleccionado por el usuario, puede representar 3 vistas diferentes. Por supuesto, tengo un caso predeterminado para la primera entrada en esta ruta, cuando el usuario aún no ha seleccionado ninguna opción.

Cuando uso URL:previous(), Laravel me devuelve a la vista predeterminada, incluso si el usuario ha seleccionado alguna otra opción. Solo usando javascript dentro del botón logré regresar a la vista correcta:

<a href="javascript:history.back()" class="btn btn-default">Voltar</a>

Probé esto en Laravel 5.3, solo para una aclaración.


14

En 5.1 solo pude hacer que esto funcione.

<a href="{{ URL::previous() }}" class="btn btn-default">Back</a>

Funciona perfectamente. ¡Gracias Señor!
Matt Inamdar

2

Uno de los siguientes resuelve su problema

URL::previous() 
URL::back()

otro

URL::current()

2

Puede usar javascript para este problema. Es recuperar el enlace del historial del navegador.

<script>
function goBack() {
  window.history.back();
}
</script>
<button onclick="goBack()">Go Back</button>


0

Puedes usar {{URL :: previous ()}} pero no es una experiencia de usuario perfecta.

Por ejemplo, cuando presiona el botón F5 y hace clic nuevamente en el botón Atrás con {{URL :: anterior ()}}, permanecerá dentro.

Una buena forma es usar {{route ('page.edit', $ item-> id)}} la página siempre verdadera que quieres redirigir.


0
<a href="{{ url()->previous() }}" class="btn btn-warning"><i class="fa fa-angle-left"></i> Continue Shopping</a>

Esto funcionó en Laravel 5.8

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.