返回归档

Laravel

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

在 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类的实例,而无需每次都从全局帮助函数或URLFacade 中获取。

  • 在使用URLFacade 或全局帮助函数时,请确保你已经正确配置了你的应用 URL(在.env文件中的APP_URL配置项)。