Próbuję utworzyć prosty przycisk Wstecz na stronie. Użytkownik może wejść na tę stronę z dwóch różnych stron, więc chciałbym wiedzieć, z której strony przyszedł. Czy to jest możliwe?
Próbuję utworzyć prosty przycisk Wstecz na stronie. Użytkownik może wejść na tę stronę z dwóch różnych stron, więc chciałbym wiedzieć, z której strony przyszedł. Czy to jest możliwe?
Odpowiedzi:
W Laravel możesz zrobić coś takiego: <a href="{{ Request::referrer() }}">Back</a>
(zakładając, że używasz Blade).
Laravel 4
{{ URL::previous() }}
Laravel 5+
{{ url()->previous() }}
URL::previous()
zamiast tego.
Wiem, że to stare pytanie, ale znalazłem je, szukając tego samego rozwiązania. Powyższe rozwiązanie nie wydaje się działać w Laravel 4, możesz jednak użyć tego teraz:
<a href="{{ URL::previous() }}">Go Back</a>
Mam nadzieję, że pomoże to ludziom, którzy szukają tej funkcji w L4
(Źródło: https://github.com/laravel/framework/pull/501/commits )
Laravel 5.2+, przycisk Wstecz
<a href="{{ url()->previous() }}" class="btn btn-default">Back</a>
Rzeczywiście za pomocą {{ URL:previous() }}
do work, ale jeśli używasz tej samej nazwanej trasy do wyświetlania wielu widoków, przeniesie Cię z powrotem do pierwszego punktu końcowego tej trasy.
W moim przypadku mam nazwaną trasę, która na podstawie wybranego przez użytkownika parametru może renderować 3 różne widoki. Oczywiście mam domyślny przypadek pierwszego wejścia w tę trasę, gdy użytkownik nie wybrał jeszcze żadnej opcji.
Kiedy używam URL:previous()
, Laravel przenosi mnie z powrotem do widoku domyślnego, nawet jeśli użytkownik wybrał inną opcję. Dopiero używając javascript wewnątrz przycisku udało mi się powrócić do prawidłowego widoku:
<a href="javascript:history.back()" class="btn btn-default">Voltar</a>
Przetestowałem to na Laravel 5.3, tylko dla wyjaśnienia.
Oto kompletne rozwiązanie Blade (silnik szablonów używany przez Laravel):
{!! link_to(URL::previous(), 'Cancel', ['class' => 'btn btn-default']) !!}
Tablica opcji z klasą jest opcjonalna, w tym przypadku określa styl dla przycisku Bootstrap 3.
Na 5.1 mogłem to tylko uruchomić.
<a href="{{ URL::previous() }}" class="btn btn-default">Back</a>
Jeden z poniższych rozwiązuje twój problem
URL::previous()
URL::back()
inny
URL::current()
Możesz użyć javascript do tego provblem. Pobiera link z historii przeglądarki.
<script>
function goBack() {
window.history.back();
}
</script>
<button onclick="goBack()">Go Back</button>
Możesz użyć {{URL :: previous ()}}, ale nie jest to doskonały UX.
Na przykład, gdy naciśniesz przycisk F5 i ponownie klikniesz przycisk Wstecz z {{URL :: previous ()}}, zostaniesz w.
Dobrym sposobem jest użycie {{route ('page.edit', $ item-> id)}} to zawsze prawdziwa strona, którą chcesz przekierować.
<a href="{{ url()->previous() }}" class="btn btn-warning"><i class="fa fa-angle-left"></i> Continue Shopping</a>
To działało w Laravel 5.8
{{ url()->previous() }}
w Laravel 5