Laravel Request获取带有查询字符串的当前路径
Laravel中的Request类没有提供一个能够返回当前路径和查询字符串的方法。但是你可以通过拼接两个其他方法的结果来轻松获取它:
echo (Request::getPathInfo() . (Request::getQueryString() ? ('?' . Request::getQueryString()) : '');
当然,还有很多其他的方法可以实现相同的功能,比如:
str_replace(url(), '', Request::fullUrl())
如果你需要在内容中修改URL,request()->getQueryString()
方法可以在Blade模板中直接使用,而无需包含任何奇怪的引入或传递变量的操作。
实际上,还有一个方法可以返回完整的URL。下面的答案也适用于Laravel 5。
在Laravel中获取带有查询字符串的当前路径的问题是出现在不同版本的Laravel中,针对这个问题可以有多种解决方法。
在Laravel 4.5中,可以使用Request::fullUrl()
来获取完整的URL。如果想要提取查询字符串,可以使用str_replace(Request::url(), '', Request::fullUrl())
来进行替换。另外,还可以使用Request::query()
来获取所有查询的数组。
而在Laravel >5.1的版本中,可以使用$request->fullUrl()
来获取完整的URL。同样,如果需要提取查询字符串,可以使用str_replace($request->url(), '', $request->fullUrl())
来进行替换。同时,也可以使用$request->query()
来获取所有查询的数组。
在更新的Laravel版本中,应该使用$request
实例来调用请求函数,而不是静态调用Request函数。
对于某些情况下,希望保留查询参数的顺序,但是fullUrl
函数会将参数顺序改变。可以通过使用纯PHP来解决,例如$actual_link = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"
来获取当前路径。
,在Laravel中获取带有查询字符串的当前路径的问题在不同版本的Laravel中有不同的解决方法。在Laravel 4.5中可以使用Request::fullUrl()
,而在Laravel >5.1中可以使用$request->fullUrl()
。对于保留查询参数顺序的问题,可以通过纯PHP来解决。