93

我正在尝试在页面上创建一个简单的后退按钮。用户可以从两个不同的页面到达这个页面,所以我想知道他是从哪个页面到达的。那可能吗?

4

10 回答 10

171

在 Laravel 中,您可以执行以下操作:(<a href="{{ Request::referrer() }}">Back</a>假设您使用的是 Blade)。

拉拉维尔 4

{{ URL::previous() }}

拉拉维尔 5+

{{ url()->previous() }}

Laravel 文档

于 2012-09-08T19:33:33.093 回答
72

我知道这是一个古老的问题,但我在寻找相同的解决方案时发现了它。上面的解决方案似乎不适用于 Laravel 4,但是您现在可以使用它:

<a href="{{ URL::previous() }}">Go Back</a>

希望这对在 L4 中寻找此功能的人有所帮助

(来源:https ://github.com/laravel/framework/pull/501/commits )

于 2013-06-10T19:21:24.010 回答
58

Laravel 5.2+,后退按钮

<a href="{{ url()->previous() }}" class="btn btn-default">Back</a>
于 2016-03-20T13:55:42.977 回答
21

确实使用{{ URL:previous() }}do work,但是如果您使用相同命名的路由来显示多个视图,它将带您回到该路由的第一个端点。

就我而言,我有一个命名路由,它基于用户选择的参数,可以呈现 3 个不同的视图。当然,当用户尚未选择任何选项时,我在此路由中第一次进入时有一个默认情况。

当我使用 时URL:previous(),Laravel 会带我回到默认视图,即使用户选择了其他选项。仅在我完成的按钮内使用javascript才能返回到正确的视图:

<a href="javascript:history.back()" class="btn btn-default">Voltar</a>

我在 Laravel 5.3 上对此进行了测试,只是为了澄清。

于 2017-03-31T16:49:29.830 回答
17

以下是一个完整的 Blade(Laravel 使用的模板引擎)解决方案:

{!! link_to(URL::previous(), 'Cancel', ['class' => 'btn btn-default']) !!}

带有类的选项数组是可选的,在这种情况下,它指定 Bootstrap 3 按钮的样式。

于 2014-07-05T19:42:41.023 回答
14

在 5.1 上,我只能让它工作。

<a href="{{ URL::previous() }}" class="btn btn-default">Back</a>
于 2016-04-14T14:35:20.843 回答
2

以下其中一项可以解决您的问题

URL::previous() 
URL::back()

其他

URL::current()
于 2018-05-26T12:40:50.063 回答
2

您可以使用 javascript 来解决这个问题。它是从浏览器历史记录中检索链接。

<script>
function goBack() {
  window.history.back();
}
</script>
<button onclick="goBack()">Go Back</button>

于 2020-01-16T15:29:23.803 回答
0

您可以使用 {{ URL::previous() }} 但它不是完美的用户体验。

例如,当您按 F5 按钮并再次单击带有 {{ URL::previous() }} 的返回按钮时,您将留在原处。

一个好方法是使用 {{ route('page.edit', $item->id) }} 它总是你想要重定向的真实页面。

于 2020-03-24T07:50:51.630 回答
0
<a href="{{ url()->previous() }}" class="btn btn-warning"><i class="fa fa-angle-left"></i> Continue Shopping</a>

这在 Laravel 5.8 中有效

于 2020-05-25T08:27:25.617 回答