Laravel后退按钮


Laravel back button

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

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

Laravel 4

{{ URL::previous() }}

Laravel 5+

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

Laravel文档

我知道这是一个古老的问题,但我在寻找相同的解决方案时发现了它。上面的解决方案似乎在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>

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

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

下面的其中一个解决您的问题

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

其他

URL::current()
<a href="{{ url()->previous() }}" class="btn btn-warning"><i class="fa fa-angle-left"></i> Continue Shopping</a>

这在Laravel 5.8 中起作用

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

例如,当您按下F5按钮并再次单击带有{{URL::previous()}}的后退按钮时,您将停留在。

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