在Laravel 5.1中返回上一个URL

69

如何在Laravel 5.1中获取之前访问过的网站的URL?

在Laravel 4中,我只需要像下面这样编写:

{{ URL::previous() }}

应该是一样的,但你也可以使用 Redirect::back() - toesslab
哦,我的表述不够清晰。Redirect::back()在控制器中是有效的,但在Blade视图中却无效! - Linus Odenring
1
你尝试过 URL::previous() 吗?在L5中也应该可以工作。 - toesslab
4
http://laravel.com/api/5.0/Illuminate/Routing/UrlGenerator.html#method_previous - toesslab
1
你的 config/app.php 文件中有这一行吗: 'URL' => Illuminate\Support\Facades\URL::class, - Mustafa Ehsan Alokozay
1个回答

170

最清晰的方式似乎是使用url()助手函数:

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

URL::previous() 在我的 Laravel 5.1 项目中适用。这里是 Laravel 5.1 文档,其中介绍了通过 URL Facade 访问的 previous() 方法。

在视图中您仍可以尝试其他替代方案:

{{ redirect()->getUrlGenerator()->previous() }}
或者:
{{ redirect()->back()->getTargetUrl() }}

1
感谢你的回答!你发的每个例子都能运行,不知道为什么以前不能运行! - Linus Odenring
10
url()->previous() 稍微简洁一些。 - FooBar
如果表单上实施了服务器端验证,则会失败。 - Bugfixer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接