Я пытаюсь создать на странице простую кнопку возврата. Пользователь может перейти на эту страницу с двух разных страниц, поэтому я хотел бы знать, с какой страницы он пришел. Это возможно?
Спасибо, это работает !! Не удалось найти это в документации ... есть ли еще где-нибудь, где я могу получить больше от laravel?
cosapostolo
2
Вы можете проверить документацию , использовать их форумы , просмотреть исходный код в папке laravel или повесить на их IRC-канале #laravel на freenode. Настоятельно рекомендую канал IRC многим дружелюбным и полезным людям, которые ответят на ваши вопросы днем или ночью.
Anon,
21
@yannishristofakis Вы используете Laravel 4? Поведение URL изменилось, поэтому используйте URL::previous()вместо него.
Маркус Хофманн
2
Request :: header ("реферер");
Рамеш
1
Проблема с этим и подходом URL :: previous () заключается в том, что он основан на реферере http. 1) Это может быть установлено не всеми пользовательскими агентами, поэтому вы не можете полагаться на него все время. 2) Более того, если он установлен, но вы посещаете определенную страницу по ссылке на внешнем источнике, вы вернетесь к этому источнику.
morksinaanab
70
Я знаю, что это старый вопрос, но я нашел его, пока искал то же решение. Приведенное выше решение не работает в Laravel 4, однако вы можете использовать его сейчас:
<a href="{{ URL::previous() }}">Go Back</a>
Надеюсь, это поможет людям, которые ищут эту функцию в L4.
Действительно, использование {{ URL:previous() }}do работает, но если вы используете один и тот же именованный маршрут для отображения нескольких представлений, он вернет вас к первой конечной точке этого маршрута.
В моем случае у меня есть именованный маршрут, который на основе параметра, выбранного пользователем, может отображать 3 разных представления. Конечно, у меня есть случай по умолчанию для первого входа в этот маршрут, когда пользователь еще не выбрал ни одной опции.
Когда я использую URL:previous(), Laravel возвращает меня к представлению по умолчанию, даже если пользователь выбрал другой вариант. Только используя javascript внутри кнопки, я смог вернуться к правильному виду:
Необходимо изменить одну вещь, вместо {{...}} вам нужно использовать {!! ... !!} иначе строка будет экранирована.
happyhardik
1
Правда, в то время это работало в Laravel 4, прежде чем они были экранированы по умолчанию. Обновлено для работы с текущими версиями Laravel. Спасибо :)
{{ url()->previous() }}
в Laravel 5Ответы:
В Laravel вы можете сделать что-то вроде этого:
<a href="{{ Request::referrer() }}">Back</a>
(при условии, что вы используете Blade).Laravel 4
Laravel 5+
Документация Laravel
источник
URL::previous()
вместо него.Я знаю, что это старый вопрос, но я нашел его, пока искал то же решение. Приведенное выше решение не работает в Laravel 4, однако вы можете использовать его сейчас:
<a href="{{ URL::previous() }}">Go Back</a>
Надеюсь, это поможет людям, которые ищут эту функцию в L4.
(Источник: https://github.com/laravel/framework/pull/501/commit )
источник
Laravel 5.2+, кнопка возврата
<a href="{{ url()->previous() }}" class="btn btn-default">Back</a>
источник
Действительно, использование
{{ URL:previous() }}
do работает, но если вы используете один и тот же именованный маршрут для отображения нескольких представлений, он вернет вас к первой конечной точке этого маршрута.В моем случае у меня есть именованный маршрут, который на основе параметра, выбранного пользователем, может отображать 3 разных представления. Конечно, у меня есть случай по умолчанию для первого входа в этот маршрут, когда пользователь еще не выбрал ни одной опции.
Когда я использую
URL:previous()
, Laravel возвращает меня к представлению по умолчанию, даже если пользователь выбрал другой вариант. Только используя javascript внутри кнопки, я смог вернуться к правильному виду:<a href="javascript:history.back()" class="btn btn-default">Voltar</a>
Я тестировал это на Laravel 5.3, просто для пояснения.
источник
Ниже приводится полное решение Blade (движок шаблонов, который использует Laravel):
{!! link_to(URL::previous(), 'Cancel', ['class' => 'btn btn-default']) !!}
Массив параметров с классом является необязательным, в этом случае он определяет стиль для кнопки Bootstrap 3.
источник
На 5.1 мне удалось заставить это работать.
<a href="{{ URL::previous() }}" class="btn btn-default">Back</a>
источник
Один из следующих способов решит вашу проблему
разное
источник
Вы можете использовать javascript для этой проблемы. Это извлекает ссылку из истории браузера.
<script> function goBack() { window.history.back(); } </script>
<button onclick="goBack()">Go Back</button>
источник
Вы можете использовать {{URL :: previous ()}}, но это не идеальный UX.
Например, если вы нажмете кнопку F5 и снова нажмете кнопку «Назад» с помощью {{URL :: previous ()}}, вы останетесь внутри.
Хороший способ - использовать {{route ('page.edit', $ item-> id)}}, это всегда настоящая страница, которую вы хотите перенаправить.
источник
<a href="{{ url()->previous() }}" class="btn btn-warning"><i class="fa fa-angle-left"></i> Continue Shopping</a>
Это работало в Laravel 5.8
источник