Laravel Request获取带有查询字符串的当前路径

16 浏览
0 Comments

Laravel Request获取带有查询字符串的当前路径

有没有Laravel的方法可以获取带有查询参数的请求的当前路径?

例如,对于URL:http://www.example.com/one/two?key=valueRequest::getPathInfo()将返回/one/twoRequest::url()将返回http://www.example.com/one/two。所期望的输出是/one/two?key=value

0
0 Comments

Laravel中的Request类没有提供一个能够返回当前路径和查询字符串的方法。但是你可以通过拼接两个其他方法的结果来轻松获取它:

echo (Request::getPathInfo() . (Request::getQueryString() ? ('?' . Request::getQueryString()) : '');

当然,还有很多其他的方法可以实现相同的功能,比如:

str_replace(url(), '', Request::fullUrl())

如果你需要在内容中修改URL,request()->getQueryString()方法可以在Blade模板中直接使用,而无需包含任何奇怪的引入或传递变量的操作。

实际上,还有一个方法可以返回完整的URL。下面的答案也适用于Laravel 5。

0
0 Comments

在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来解决。

0
0 Comments

问题的原因是想要获取包含查询字符串的当前路径,但尚未找到合适的方法。解决方法是使用Laravel中的\Request::getRequestUri()方法或request()->getRequestUri()方法来获取当前路径。这两种方法都可以返回包含查询字符串的路径。这些方法在Laravel 5.2和Laravel 9中都可以正常工作。如果只想获取查询字符串中的特定值,可以使用request()->get('key')方法来获取键为'key'的值。

0