在 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配置项)。
                                著作权归作者所有。
                                商业转载请联系作者获得授权,非商业转载请注明出处。
                                作者:JefskyWong    ——程序猿甜品店
                                链接:https://www.jefsky.com/blog/339 
                                来源:https://www.jefsky.com/