在 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/