Laravel 多种方法获取当前 URL、请求路径、参数等信息

由 Jefsky 发布于 2024-06-14

在 Laravel 中,多种方法可以获取当前 URL、请求路径、参数等信息。

使用 URL 类

  • URL::full();url()->full();:这两个方法返回当前请求的完整 URL,包括查询字符串。
  • URL::current();url()->current();:这两个方法返回当前请求的 URL,但不包括查询字符串。
  • URL::previous();url()->previous();:如果浏览器发送了 Referer 头,则此方法将返回之前的 URL。否则,它将返回 null
  • URL::secureAsset('path/to/asset');:返回指定资源的 HTTPS URL。如果应用配置为使用 HTTPS,它将使用 HTTPS URL;否则,它将使用普通的 HTTP URL。

使用 Request 类

  • Request::url();$request->url();:返回当前请求的完整 URL,包括查询字符串。
  • Request::path();$request->path();:返回当前请求的 URI 路径,不包括查询字符串。
  • Request::getRequestUri();$request->getRequestUri();:返回请求 URI(路径和查询字符串)。
  • Request::getUri();$request->getUri();:返回请求 URI 的完整字符串,包括 scheme、host、端口(如果非默认)、路径和查询字符串。
  • $request->route()->getAction();:返回当前路由操作的相关信息,通常用于获取控制器和方法的名称等。

使用 Input 类(不推荐)

在 Laravel 中,Input 类已经被废弃,取而代之的是 Request 类的各种方法。因此,不建议使用 Input::url();,而应该使用 Request 类的方法。

使用 $_SERVER

  • $_SERVER['REQUEST_URI']:包含当前请求的 URI 路径,可能包括查询字符串。
  • $_SERVER['HTTP_HOST']:包含当前请求的主机名和端口号(如果非默认)。

使用 Request 类获取 $_SERVER 信息

  • Request::server();$request->server();:返回包含 $_SERVER 数组所有信息的数组。
  • Request::server('HTTP_HOST');$request->server('HTTP_HOST');:返回 $_SERVER 数组中特定键的值。

注意事项

  • 当在控制器或路由闭包中使用这些方法时,通常会将 Request 类的实例作为参数传递给方法或闭包,因此你可以直接使用 $request 变量来调用其方法。
  • 在 Laravel 的服务容器和依赖注入的帮助下,你可以轻松地访问 Request 类的实例,而无需每次都从全局帮助函数或 URL Facade 中获取。
  • 在使用 URL Facade 或全局帮助函数时,请确保你已经正确配置了你的应用 URL(在 .env 文件中的 APP_URL 配置项)。

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:JefskyWong ——程序猿甜品店
链接:https://www.jefsky.com/blog/339
来源:https://www.jefsky.com/