Я пытаюсь создать на странице простую кнопку возврата. Пользователь может перейти на эту страницу с двух разных страниц, поэтому я хотел бы знать, с какой страницы он пришел. Это возможно?
Я пытаюсь создать на странице простую кнопку возврата. Пользователь может перейти на эту страницу с двух разных страниц, поэтому я хотел бы знать, с какой страницы он пришел. Это возможно?
Ответы:
В Laravel вы можете сделать что-то вроде этого: <a href="{{ Request::referrer() }}">Back</a>(при условии, что вы используете Blade).
Laravel 4
{{ URL::previous() }}
Laravel 5+
{{ url()->previous() }}
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>
Один из следующих способов решит вашу проблему
URL::previous()
URL::back()
разное
URL::current()
Вы можете использовать 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
{{ url()->previous() }}в Laravel 5