Я намагаюся створити просту кнопку "Назад" на сторінці. Користувач може перейти на цю сторінку з двох різних сторінок, тому я хотів би знати, з якої сторінки він прибув. Це можливо?
Я намагаюся створити просту кнопку "Назад" на сторінці. Користувач може перейти на цю сторінку з двох різних сторінок, тому я хотів би знати, з якої сторінки він прибув. Це можливо?
Відповіді:
У 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/commits )
Laravel 5.2+, кнопка назад
<a href="{{ url()->previous() }}" class="btn btn-default">Back</a>
Справді, використання {{ URL:previous() }}
виконує роботу, але якщо ви використовуєте один і той самий маршрут для відображення декількох подань, це поверне вас до першої кінцевої точки цього маршруту.
У моєму випадку у мене є іменований маршрут, який на основі вибраного користувачем параметру може відображати 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