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?
Dzięki, to działa !! Nie udało mi się znaleźć tego w dokumentacji ... czy jest jeszcze miejsce, w którym mogę wyciągnąć więcej z laravel?
cosapostolo
2
Możesz sprawdzić dokumentację , skorzystać z ich forów , przeglądać źródła w folderze laravel lub zawiesić się na ich kanale IRC #laravel na freenode. Gorąco polecam kanał IRC wielu przyjaznych i pomocnych ludzi, którzy odpowiedzą na Twoje pytania, w dzień iw nocy.
Anon
21
@yannishristofakis Czy używasz Laravel 4? Zachowanie adresu URL uległo zmianie, więc użyj URL::previous()zamiast tego.
Markus Hofmann
2
Request :: header ("referrer");
Ramesh
1
Problem z tym podejściem i podejściem URL :: previous () polega na tym, że jest on oparty na stronie odsyłającej http. 1) To może nie być ustawione przez wszystkich agentów użytkownika, więc nie możesz na tym polegać przez cały czas. 2) Ponadto, jeśli jest ustawione, ale odwiedzasz określoną stronę z linku w zewnętrznym źródle, wrócisz do tego źródła.
morksinaanab
70
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
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:
{{ url()->previous() }}
w Laravel 5Odpowiedzi:
W Laravel możesz zrobić coś takiego:
<a href="{{ Request::referrer() }}">Back</a>
(zakładając, że używasz Blade).Laravel 4
Laravel 5+
Dokumentacja Laravel
źródło
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 )
źródło
Laravel 5.2+, przycisk Wstecz
<a href="{{ url()->previous() }}" class="btn btn-default">Back</a>
źródło
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.
źródło
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.
źródło
Na 5.1 mogłem to tylko uruchomić.
<a href="{{ URL::previous() }}" class="btn btn-default">Back</a>
źródło
Jeden z poniższych rozwiązuje twój problem
inny
źródło
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>
źródło
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ć.
źródło
<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
źródło