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?
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
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:
{{ url()->previous() }}
en Laravel 5Respuestas:
En Laravel, puedes hacer algo como esto:
<a href="{{ Request::referrer() }}">Back</a>
(asumiendo que estás usando Blade).Laravel 4
Laravel 5+
Documentación de Laravel
fuente
URL::previous()
en su lugar.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 )
fuente
Laravel 5.2+, botón de retroceso
<a href="{{ url()->previous() }}" class="btn btn-default">Back</a>
fuente
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.
fuente
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.
fuente
En 5.1 solo pude hacer que esto funcione.
<a href="{{ URL::previous() }}" class="btn btn-default">Back</a>
fuente
Uno de los siguientes resuelve su problema
otro
fuente
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>
fuente
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.
fuente
<a href="{{ url()->previous() }}" class="btn btn-warning"><i class="fa fa-angle-left"></i> Continue Shopping</a>
Esto funcionó en Laravel 5.8
fuente