我正在尝试在页面上创建一个简单的后退按钮。用户可以从两个不同的页面到达这个页面,所以我想知道他是从哪个页面到达的。那可能吗?
10 回答
在 Laravel 中,您可以执行以下操作:(<a href="{{ Request::referrer() }}">Back</a>
假设您使用的是 Blade)。
拉拉维尔 4
{{ URL::previous() }}
拉拉维尔 5+
{{ 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() }}
do work,但是如果您使用相同命名的路由来显示多个视图,它将带您回到该路由的第一个端点。
就我而言,我有一个命名路由,它基于用户选择的参数,可以呈现 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() }} 但它不是完美的用户体验。
例如,当您按 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 中有效